关于一个式子
查看原帖
关于一个式子
573377
forgotmyhandle楼主2024/3/11 21:53

在这篇题解中提到了一个结论:答案为最小的满足 ∣x−∑i=0m−1xi mod n∣+∣y−∑i=0m−1yi mod n∣≤mk|x - \sum_{i = 0}^{m - 1}x_{i \bmod n}| + |y - \sum_{i = 0}^{m - 1}y_{i \bmod n}| \le mk。的 mm。但是对于

2 10 10 10
-9 0
-10 0

这样的数据,虽然该题解代码输出的答案是对的(39\texttt{39}),但是这样的答案并不符合上述的式子。按照 m=39m = 39 计算,上式左边是 400400,而右边为 390390。不等号显然不成立。我算了很多遍都是这个结果。然后使用这份代码

#include <iostream>
using namespace std;
int x[100005], y[100005];
int Abs(int x) { return (x < 0 ? -x : x); }
int main() {
   int n, X, Y, k;
   cin >> n;
   cin >> X >> Y >> k;
   for (int i = 0; i < n; i++) cin >> x[i];
   for (int i = 0; i < n; i++) cin >> y[i];
   int m;
   cin >> m;
   for (int i = 0; i < m; i++) {
       X -= x[i % n];
       Y -= y[i % n];
   }
   cout << Abs(X) + Abs(Y) << " " << m * k << "\n";
   return 0;
}

进行计算,得到的结果也是 m=39m = 39 时式子不成立。所以这篇题解能够通过到底是因为这个式子成立而我是小丑,还是因为这篇题解的代码实际上并没有照着这个式子写?

2024/3/11 21:53
加载中...