无解?
2025-05-18 22:30:25
发布于:内蒙古
大家都知道,A18840.CharyChung和HashBuke的数字游戏是一个非常难的题,0%的通过率让人想试又不敢。
下面是我的代码,望大佬修改。
#include <iostream>
#include <vector>
using namespace std;
const int MOD = 998244353;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N, m, a;
cin >> N >> m >> a;
vector<long long> A(N);
for (auto &x : A) cin >> x;
long long total_xor = 0;
vector<long long> k_values(N);
for (int i = 0; i < N; ++i) {
if (A[i] >= a) {
long long delta = A[i] - a;
long long k = (delta + m - 1) / m; // 向上取整
k_values[i] = (k > 0) ? k : -1; // 避免k=0的情况
if(k_values[i] != -1) total_xor ^= k_values[i];
} else {
k_values[i] = -1;
}
}
int res = 0;
for (int i = 0; i < N; ++i) {
if (k_values[i] == -1) continue;
long long target = total_xor ^ k_values[i];
if (target < k_values[i]) {
res = (res + 1) % MOD;
}
}
cout << res << endl;
return 0;
}
它满足了三个输入输出样例,但不对(自己一点点写的,没抄任何人)。
这里空空如也
有帮助,赞一个