首页 > 游游的数值距离
头像 此在Dasein
发表于 2025-12-06 03:37:21
因为阶乘增长非常快,可能的 取值非常有限。对于每个 (跳过 ),计算 ,则原式化为 。 若 (即 ): 取 (或其他 的正整数),差值为 。 若 : 要使绝对值最小,应让 尽可能接近 。最优 只可能为 或 ,排除 后选取合法的候选值。 枚举每个合法候选 ,计算差值,更新最小值 展开全文
头像 Lambda_L
发表于 2025-12-06 02:07:54
#include <bits/stdc++.h> using namespace std; #define int long long int jc(int x) // 阶乘 { int res = 1; for (int i = 1; i <= x; i++) 展开全文
头像 以诚丶
发表于 2025-07-17 17:47:38
原始为求这么一个式子: 的数值增长是非常快的,在的范围下,其个数非常有限,那么我们不妨预处理出阶乘表,阶乘到刚好大于的位数就可以了。 由于的个数非常有限,我们可以直接枚举,然后一个二维问题就变为了:。 求最小,其实也就是绝对值在0附近,那么不妨直接假设,那么式子变为:。 由于可能有偏移,可以试一下和 展开全文
头像 wt函数格式不正确
发表于 2025-12-06 08:11:15
// 也就是遍历找到(x!-1)*y-n的绝对值的最小值 // 由于当x 为1时,整个最小值固定为n(负n的绝对值) // 那么我定义一个ll min = n; // 首先计算出所有的x的阶乘,由于12的阶乘是1e8数量级,因此只需计算到12!即可 // 从i=3开始遍历x,然后j=1开始遍历y 展开全文