可参考
2026-08-14 10:33:23
发布于:新疆
2阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
// 计算两个数的汉明距离
int hd(int x, int y) {
int res = x ^ y; // 异或运算,得到不同位的标记
int dis = 0;
while (res > 0) {
dis += res & 1; // 统计最低位是否为1
res >>= 1; // 右移一位
}
return dis;
}
int main() {
int t;
cin >> t; // 读取测试用例的数量
while (t--) {
int n, k;
cin >> n >> k; // 读取n和k
int cnt = 0; // 初始化计数器
// 遍历所有可能的数对(x, y),其中0 ≤ x < y ≤ n
for (int i = 0; i <= n; i++) {
for (int j = i + 1; j <= n; j++) {
if (hd(i, j) <= k) { // 如果汉明距离≤k
cnt = (cnt + 1) % 998244353; // 计数并取模
}
}
}
cout << cnt << endl; // 输出结果
}
return 0;
}
//真正的信奥能力,是在一次次“写→错→调→懂”的闭环中长出来的。你已经迈出了最关键的第一步:清晰定义问题,敢于质疑细节,主动寻求结构化思路。 继续保持这种状态,你一定会越来越强!
这里空空如也








有帮助,赞一个