QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#751837 | #9745. 递增序列 | clear_tea | WA | 107ms | 3804kb | C++20 | 1.4kb | 2024-11-15 20:55:54 | 2024-11-15 20:55:55 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define int long long
int ans;
vector<int> pos(70, -1);
void dfs(int k, int p) {
if(p == -1)
return ;
if ((k >> p & 1) && (pos[p] != 1)) { //这位是1,那么可以选0,下一位开始任选
int t = 1;
for (int i = p - 1; i >= 0; i--) {
if (pos[i] == -1) {
t *= 2;
}
}
ans += t;
}
// 这位是0,没得选,往下
dfs(k, p - 1);
}
void solve() {
int n, k;
cin >> n >> k;
ans = 0;
vector<int> a(n + 1);
for (int i = 1; i <= n; i++) cin >> a[i];
// 相邻判断某位上是否一定为某数,如果冲突直接输出0
// 最后考虑k的范围
for (int i = 2; i <= n; i++) {
for (int j = 63; j >= 0; j--) {
if ((a[i] >> j & 1) != (a[i - 1] >> j & 1)) {
if (pos[j] == -1) {
pos[j] = a[i - 1] >> j & 1;
break;
} else if (pos[j] != (a[i - 1] >> j & 1)) {
cout << "0\n";
return;
}
}
}
}
ans = 0;
dfs(k, 63);
cout << ans << '\n';
}
signed main() {
#ifdef ONLINE_JUDGE
#else
freopen("in.txt", "r", stdin);
freopen("out.txt", "w", stdout);
#endif
int t = 1;
cin >> t;
while (t--) {
solve();
}
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 3488kb
input:
1 4 17 3 2 5 16
output:
4
result:
ok single line: '4'
Test #2:
score: -100
Wrong Answer
time: 107ms
memory: 3804kb
input:
36156 2 732025001343805266 563399128172323734 55283226774627822 7 388099190813067712 564150557919527813 457487771983557281 332055400678110195 760833651510929158 785768483273197875 690506113272551236 463276585748519124 2 798714574862593347 426890163990834364 434764725667883272 1 414708220571820990 42...
output:
443794625192093522 0 0 36405851872699326 85894244360501197 0 0 0 0 0 18375654950636226 0 0 0 0 0 0 0 10475417989962730 0 10156088409580247 0 0 0 0 0 0 0 8000634280058004 0 0 0 0 4922119951099621 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3161391856396890 0 0 0 0 0 1120814784141848 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...
result:
wrong answer 1st lines differ - expected: '288230376151711744', found: '443794625192093522'