QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#855766 | #9745. 递增序列 | liujunyi123 | WA | 36ms | 3896kb | C++14 | 785b | 2025-01-13 10:32:38 | 2025-01-13 10:32:39 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5;
int T,n,vis[65];long long k,x,lst;
void solve(){bool fl=0;
memset(vis,-1,sizeof(vis));
scanf("%d%lld%lld",&n,&k,&lst);
for(int i=2;i<=n;i++){
scanf("%lld",&x);
for(int j=60;j>=0;j--)if((x>>j)!=(lst>>j)){
if(vis[j]!=-1&&((x>>j)&1)!=!vis[j])fl=1;
vis[j]=!((x>>j)&1);
// cout<<i<<" "<<j<<endl;
break ;
}
lst=x;
}
long long sum=0;
if(fl)return puts("0"),void();
for(int i=60;i>=0;i--){
// cout<<vis[i]<<endl;
if(((k>>i)&1)&&(vis[i]==-1||!vis[i])){
long long s=1;
for(int j=0;j<i;j++)if(vis[j]==-1)s*=2;
sum+=s;
}
if(vis[i]!=-1&&vis[i]!=((k>>i)&1))break ;
}
printf("%lld\n",sum);
}
int main(){
scanf("%d",&T);
while(T--)solve();
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3896kb
input:
1 4 17 3 2 5 16
output:
4
result:
ok single line: '4'
Test #2:
score: -100
Wrong Answer
time: 36ms
memory: 3824kb
input:
36156 2 732025001343805266 563399128172323734 55283226774627822 7 388099190813067712 564150557919527813 457487771983557281 332055400678110195 760833651510929158 785768483273197875 690506113272551236 463276585748519124 2 798714574862593347 426890163990834364 434764725667883272 1 414708220571820990 42...
output:
288230376151711744 0 432345564227567616 414708220571820990 716398192192370637 0 1949654914769743 0 0 0 811009189367843522 0 0 0 114457959388827197 36028797018963968 0 0 91540211282631658 0 694703231769895639 144115188075855872 0 0 0 0 432345564227567616 65333152962117910 753346372609875092 180143985...
result:
wrong answer 4th lines differ - expected: '414708220571820991', found: '414708220571820990'