QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#748143#9745. 递增序列_LSA_WA 36ms3584kbC++141.6kb2024-11-14 19:28:412024-11-14 19:28:42

Judging History

This is the latest submission verdict.

  • [2024-11-14 19:28:42]
  • Judged
  • Verdict: WA
  • Time: 36ms
  • Memory: 3584kb
  • [2024-11-14 19:28:41]
  • Submitted

answer

#include<bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define pii pair<int,int>
#define fi first
#define se second
#define mk make_pair
using namespace std;
ll read(){
    ll X = 0 ,r = 1;
    char ch = getchar();
    while(!isdigit(ch) && ch != '-') ch = getchar();
    if(ch == '-') r = -1,ch = getchar();
    while(isdigit(ch)) X = X*10+ch-'0',ch = getchar();
    return X*r;
}
const int N = 2e5+10;
int n,s[N],f[N];
ll k,a[N];
ll g[70][2];
ll dfs(int x,bool flag){
    if(x == -1) return 1;
    if(g[x][flag] != -1) return g[x][flag];
    int lim = flag ? (k >> x) & 1 : 1;
    ll res = 0;
    for(int i=0;i<=lim;i++){
        if(f[x] == i || f[x] == -1){
            res += dfs(x-1,(i==lim)&flag);
        }
    }
    return g[x][flag] = res;
}
void solve(){
    n = read(); k = read();
    for(int i=1;i<=n;i++) a[i] = read();
    for(int i=0;i<=62;i++) f[i] = -1;
    bool flag = false;
    for(int i=2;i<=n;i++){
        for(int j=62;~j;j--){
            int x = (a[i]>>j)&1,y = (a[i-1]>>j)&1;
            if(x != y){
                if(y == 0){
                    if(f[j] == 1 || f[j] == -1) f[j] = 0;
                    else flag = true;
                }else{
                    if(f[j] == 0 || f[j] == -1) f[j] = 1;
                    else flag = true;
                }
                break;
            }
        }
    }
    if(flag) return puts("0"),void();
    memset(g,-1,sizeof(g));
    cout << dfs(62,1) << "\n";
}
int main(){
    int T = read();
    while(T--) solve();
	return 0;
}

详细

Test #1:

score: 100
Accepted
time: 0ms
memory: 3528kb

input:

1
4 17
3 2 5 16

output:

4

result:

ok single line: '4'

Test #2:

score: -100
Wrong Answer
time: 36ms
memory: 3584kb

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
414708220571820991
716398192192370638
0
1949654914769744
0
0
0
811009189367843523
0
75691510499104990
0
114457959388827198
0
0
72057594037927936
91540211282631659
0
694703231769895640
144115188075855872
0
0
274278329264838536
0
432345564227567616
6533315296211...

result:

wrong answer 13th lines differ - expected: '0', found: '75691510499104990'