QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#775350#9745. 递增序列bluejellyfishWA 66ms4692kbC++231.4kb2024-11-23 15:36:272024-11-23 15:36:27

Judging History

你现在查看的是最新测评结果

  • [2024-11-23 15:36:27]
  • 评测
  • 测评结果:WA
  • 用时:66ms
  • 内存:4692kb
  • [2024-11-23 15:36:27]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int inf = numeric_limits<int>::max();
const int S = 64;

void miss() {
    int n, k; cin >> n >> k;
    vector<int> a(n + 1) , b(S , -1); 
    for(int i = 1 ; i <= n ; i ++) {
		cin >> a[i];
		if(a[i] != 10 && n == 200000) cout << i << " ";
	}
    auto check = [&](int x , int y) -> bool {
        for(int i = 62 ; ~i ; i --) if((x >> i & 1) != (y >> i & 1)) {
            int ok = 1;
            if((x >> i & 1) < (y >> i & 1)) ok = 0;
            if(b[i] == (ok ^ 1)) return false;
            else b[i] = ok;
            return true;
        }
        return true;
    };

    for(int i = 1 ; i < n ; i ++) if(!check(a[i],a[i + 1])) {
        return cout << "0\n" , void();
    }
    vector<int> dp(S , -1);
    auto dfs = [&](auto self , int pos , int limit) -> int{
        if(!~pos) return 1;
        if(!limit && dp[pos] != -1) return dp[pos];
        int up = 1 , now = k >> pos & 1;
        if(limit && !now) up = 0;
        int ans = 0;
        if(b[pos] == -1) for(int i = 0 ; i <= up ; i ++) ans += self(self,pos - 1,limit&(now == i));
        else if(b[pos] <= up) ans += self(self,pos - 1,limit&(now == b[pos]));
        if(!limit) dp[pos] = ans;
        return ans;
    };
    cout << dfs(dfs,62,1) << "\n";
}
signed main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    int T = 1;
    cin >> T;
    while(T--) miss();
	//system("pause");
}

詳細信息

Test #1:

score: 100
Accepted
time: 1ms
memory: 3548kb

input:

1
4 17
3 2 5 16

output:

4

result:

ok single line: '4'

Test #2:

score: 0
Accepted
time: 40ms
memory: 3544kb

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
0
0
114457959388827198
36028797018963968
0
0
91540211282631659
0
694703231769895640
144115188075855872
0
0
0
0
432345564227567616
65333152962117911
753346372609875093
180143985...

result:

ok 36156 lines

Test #3:

score: 0
Accepted
time: 66ms
memory: 3840kb

input:

66700
5 574806949
707283080 678928379 541095440 909663418 934562284
2 131740903
1072092807 29505236
1 288553982
996051310
3 327852411
555539857 562077878 310330495
5 43708614
467258834 418367471 258444521 166976259 1064316226
4 128498668
513637339 62151118 158694610 650278927
2 351983999
4118288 333...

output:

33554432
0
288553983
0
0
0
268435456
0
149009740
386781916
437566564
385875968
0
315141961
271302559
33554432
0
0
0
95224229
129359372
134217728
134217728
268435456
0
67108864
33554432
0
0
0
268435456
0
0
134217728
67108864
268435456
212106049
67108864
0
268435456
4450845
268435456
0
67108864
378512...

result:

ok 66700 lines

Test #4:

score: 0
Accepted
time: 35ms
memory: 3608kb

input:

36360
1 96
43
4 13
34 87 65 66
10 19
30 15 3 46 37 35 84 82 83 74
9 4
52 54 49 62 46 31 8 85 85
5 11
47 60 16 125 73
2 82
41 86
6 53
96 106 117 88 37 54
4 88
25 85 70 116
6 77
2 7 10 15 83 79
4 93
41 35 10 121
3 54
39 49 73
8 14
10 1 18 59 62 61 66 89
9 66
58 39 26 17 122 117 107 97 98
9 95
29 23 0 ...

output:

97
0
0
0
0
64
0
16
8
16
32
2
4
4
0
0
6
15
79
31
2
0
64
4
4
0
4
6
4
3
0
8
9
8
0
8
0
4
30
0
2
4
4
24
2
4
4
0
2
48
4
2
0
4
13
0
0
32
47
8
0
2
0
21
8
0
0
0
0
4
42
0
16
0
2
64
8
22
16
4
4
32
16
0
0
0
8
0
14
42
29
0
16
8
0
0
0
8
28
71
0
33
16
8
6
4
4
28
0
0
32
4
8
32
82
0
0
0
0
85
16
0
16
19
32
1
4
32
0
1...

result:

ok 36360 lines

Test #5:

score: -100
Wrong Answer
time: 21ms
memory: 4692kb

input:

1
200000 4
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1...

output:

18091 18092 18093 18094 18095 18096 18097 18098 18099 18100 18101 18102 18103 18104 18105 18106 18107 18108 18109 18110 18111 18112 18113 18114 18115 18116 18117 18118 18119 18120 18121 18122 18123 18124 18125 18126 18127 18128 18129 18130 18131 18132 18133 18134 18135 18136 18137 18138 18139 18140 ...

result:

wrong answer 1st lines differ - expected: '0', found: '18091 18092 18093 18094 18095 ...6 199997 199998 199999 200000 0'