1 条题解
信息
- ID
- 1145
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- 递交数
- 17
- 已通过
- 6
- 上传者
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
void solve() {
int n, k;
cin >> n >> k;
int b[80] = {0}; // 记录k进制每一位的总次数,足够容纳1e18的k进制位数
for (int i = 0; i < n; i++) {
ll x;
cin >> x;
int p = 0;
while (x > 0) {
int digit = x % k; // 取k进制当前位的数字
b[p] += digit; // 累加该位的使用次数
x /= k; // 处理更高位
p++;
}
}
// 检查每一位的总次数是否都不超过1
for (int i = 0; i < 63; i++) {
if (b[i] > 1) {
cout << "NO\n";
return;
}
}
cout << "YES\n";
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int T;
cin >> T;
while (T--) solve();
return 0;
}