QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#422641#8090. GurdurrAfterlife#AC ✓897ms36192kbC++202.9kb2024-05-27 17:52:092024-05-27 17:52:09

Judging History

This is the latest submission verdict.

  • [2024-05-27 17:52:09]
  • Judged
  • Verdict: AC
  • Time: 897ms
  • Memory: 36192kb
  • [2024-05-27 17:52:09]
  • Submitted

answer

#include <bits/stdc++.h>
using namespace std;
int n , m;
vector<int> sg[2][2][21];

void init() {
    
    for(int i = 0;i <= 20;i++) {
        for(int a = 0;a < 2;a++) { /// [0允许,1不允许]
            for(int b = 0;b < 2;b++) {
                sg[a][b][i].resize(1 << i) ;
                vector<int> m(40 + 1);
                for(int s = 0 ; s < (1<<i) ;s++) {
                    if(i == 0) sg[a][b][i][s] = 0;
                    else {
                        for(int j = 0;j <= i*2;j++) m[j] = 0;
                        sg[a][b][i][s] = -1;
                        for(int j = 0;j < i;j++) {
                            if((s >> j) & 1) {
                                /// [3->4]
                                m[sg[a][0][j][s & ((1 << j) - 1)] ^ sg[0][b][i - j - 1][ (s & ((1 << i) - (1 << j+1))) >> j+1]] = 1;
                                /// [3->2]
                                m[sg[a][b][i][s ^ (1 << j)]] = 1;
                            }
                            else {
                                //// 2
                                //// [2->1]
                                if(!((j == 0 && a == 1) || (j == i - 1 && b == 1))) {
                                    m[sg[a][1][j][s & ((1 << j) - 1)] ^ sg[1][b][i - j - 1][(s & ((1 << i) - (1 << j+1))) >> j+1]] = 1;
                                }
                            }
                            // printf("ok %d\n",j);
                        }
                        
                        for(int p = 0;p <= 40;p++) {
                            if(!m[p]) {sg[a][b][i][s] = p ; break ;}
                        }
                        // assert(sg[a][b][i][s] != -1) ;
                        // printf("OK %d %d %d %d : %d\n",a,b,i,s , sg[a][b][i][s]);
                    }
                }
            }

        }
        // printf("OK %d\n",i);
    }
}
void solv() {
    int n ; cin >> n;
    vector<array<int,4> > sub;
    array<int,4> lst = {0,0,0,0};
    for(int i = 1;i <= n;i++) {
        string s;cin >> s;
        if(s == "I.I") { /// 4
            if(lst[2]) {
                sub.push_back(lst) ; 
            }
            lst = {0,0,0,0};
        }
        else if(s == ".I.") { ///1
            lst[1] = 1 ;
            sub.push_back(lst) ; 
            lst = {0,0,0,0} ;
            lst[0] = 1;
        }
        else if(s == "II." || s == ".II") { ///2
            lst[3] += 0;
            lst[2]++;
        }
        else {
            lst[3] += (1 << lst[2]) ;
            lst[2]++;
        }
    }
    if(lst[2]) sub.push_back(lst);
    int a = 0;
    for(auto &x : sub) {
        // printf("%d %d %d %d\n",x[0],x[1],x[2],x[3]);
        a ^= sg[x[0]][x[1]][x[2]][x[3]];
    }
    if(a) cout << "First\n";
    else cout << "Second\n";
}
int main() {
    ios::sync_with_stdio(false) ; cin.tie(0) ; cout.tie(0) ;
    init() ;
    int t;cin >> t;
    while(t--) solv() ;
}

详细

Test #1:

score: 100
Accepted
time: 854ms
memory: 36192kb

input:

5
1
III
1
I.I
1
.I.
1
.II
2
III
III

output:

First
Second
Second
First
First

result:

ok 5 lines

Test #2:

score: 0
Accepted
time: 868ms
memory: 35928kb

input:

1
3
II.
.II
III

output:

Second

result:

ok single line: 'Second'

Test #3:

score: 0
Accepted
time: 842ms
memory: 36148kb

input:

292
4
III
II.
III
.I.
2
III
I.I
1
.I.
1
I.I
2
III
III
3
I.I
.I.
III
3
II.
III
I.I
4
III
III
III
III
2
.II
.I.
4
.I.
.II
III
.I.
4
I.I
.I.
I.I
III
4
III
.I.
II.
.I.
4
III
I.I
III
I.I
3
III
III
III
4
III
I.I
II.
.II
2
.I.
III
4
III
I.I
.I.
I.I
3
.II
.II
I.I
3
.I.
I.I
I.I
4
I.I
III
I.I
III
1
III
4
.I.
...

output:

First
First
Second
Second
First
First
Second
Second
Second
First
First
First
Second
First
First
First
First
First
Second
Second
First
Second
Second
First
First
Second
Second
Second
First
Second
Second
Second
First
Second
First
First
Second
First
First
Second
First
First
First
First
Second
First
Firs...

result:

ok 292 lines

Test #4:

score: 0
Accepted
time: 872ms
memory: 36152kb

input:

4216
3
.II
I.I
I.I
4
.I.
III
.I.
I.I
1
III
3
.II
I.I
III
4
.II
I.I
.I.
III
3
I.I
I.I
I.I
6
III
III
III
.I.
II.
III
6
I.I
II.
II.
II.
.II
II.
2
I.I
.I.
3
.I.
II.
.II
3
I.I
I.I
III
6
I.I
I.I
.I.
I.I
I.I
I.I
4
I.I
I.I
.I.
II.
2
.II
I.I
5
.II
.I.
I.I
.I.
.II
2
II.
II.
1
.II
4
I.I
III
.I.
.II
3
.II
II.
I...

output:

First
First
First
First
Second
Second
First
First
Second
First
First
Second
Second
First
Second
First
First
First
First
First
Second
Second
Second
Second
First
First
First
Second
Second
First
Second
Second
Second
First
Second
First
First
First
Second
First
First
Second
First
Second
Second
First
Firs...

result:

ok 4216 lines

Test #5:

score: 0
Accepted
time: 858ms
memory: 35920kb

input:

30000
7
.I.
I.I
III
.I.
I.I
.I.
III
3
III
.I.
II.
4
I.I
I.I
III
III
1
II.
1
.I.
2
II.
.I.
6
.I.
I.I
.I.
.II
II.
II.
7
II.
.I.
I.I
.I.
I.I
.II
I.I
3
.I.
.II
.I.
7
III
I.I
.II
III
.II
.II
III
2
.II
I.I
3
III
I.I
.I.
7
I.I
I.I
.I.
II.
.I.
III
III
6
I.I
I.I
II.
.I.
II.
I.I
6
III
III
I.I
.I.
I.I
.II
7
II...

output:

Second
First
First
First
Second
Second
First
First
Second
First
First
First
First
Second
Second
First
First
First
First
First
Second
First
First
First
First
First
First
First
First
First
First
First
First
First
Second
First
Second
First
Second
First
First
Second
First
Second
First
First
Second
First...

result:

ok 30000 lines

Test #6:

score: 0
Accepted
time: 871ms
memory: 36040kb

input:

30000
9
.I.
I.I
.I.
I.I
.I.
I.I
.I.
I.I
.I.
7
.II
III
III
II.
I.I
I.I
.II
3
.I.
I.I
I.I
1
.I.
2
II.
II.
10
III
.I.
I.I
.II
.II
III
.II
I.I
.I.
.II
2
.I.
I.I
10
.I.
I.I
.I.
I.I
.I.
I.I
I.I
.I.
I.I
.I.
10
.I.
III
III
II.
I.I
III
.I.
I.I
II.
.I.
3
I.I
.I.
.II
10
.II
.I.
.II
.II
II.
.II
III
.I.
.II
.I.
...

output:

Second
First
Second
Second
First
Second
Second
Second
Second
Second
First
First
Second
Second
First
Second
Second
Second
First
First
First
First
First
First
Second
Second
First
First
First
First
Second
Second
First
First
Second
First
Second
Second
First
Second
Second
First
First
Second
First
First
F...

result:

ok 30000 lines

Test #7:

score: 0
Accepted
time: 869ms
memory: 36012kb

input:

30000
12
I.I
.I.
III
III
.II
.I.
I.I
III
III
II.
III
III
7
III
II.
.I.
III
.I.
.II
II.
2
III
III
7
I.I
.I.
II.
.II
II.
.I.
II.
6
III
III
I.I
II.
III
.II
10
.I.
I.I
III
.I.
.II
I.I
I.I
III
.II
III
7
.II
I.I
.I.
III
.I.
III
III
11
II.
I.I
III
.I.
II.
.I.
III
III
III
II.
I.I
5
III
.I.
I.I
.II
III
2
I.I...

output:

First
First
First
First
Second
Second
First
First
First
Second
Second
First
Second
First
First
Second
First
First
First
First
First
First
First
First
First
Second
First
First
First
Second
First
Second
First
Second
First
First
Second
Second
First
First
First
First
First
First
First
First
First
First
...

result:

ok 30000 lines

Test #8:

score: 0
Accepted
time: 868ms
memory: 36104kb

input:

30000
12
II.
III
II.
II.
I.I
I.I
I.I
III
III
.II
I.I
I.I
3
.I.
III
.I.
7
.I.
I.I
.I.
I.I
.I.
I.I
.I.
10
II.
II.
.II
III
.II
.II
.II
II.
.I.
.II
14
III
.I.
III
I.I
II.
.I.
III
III
II.
.II
.I.
II.
II.
III
1
III
8
I.I
III
III
III
III
.I.
I.I
III
1
I.I
3
I.I
I.I
.I.
8
.I.
III
I.I
I.I
I.I
.II
III
.I.
7
....

output:

First
First
Second
First
First
First
Second
Second
Second
First
First
First
First
First
First
First
First
First
First
First
Second
Second
Second
Second
First
Second
First
First
First
Second
First
Second
First
First
First
First
First
First
First
First
Second
Second
First
Second
First
Second
First
Sec...

result:

ok 30000 lines

Test #9:

score: 0
Accepted
time: 893ms
memory: 36056kb

input:

30000
11
.I.
III
II.
.I.
II.
I.I
II.
.II
I.I
.I.
III
13
.I.
.II
III
.II
III
III
III
.I.
II.
.I.
III
.II
III
2
II.
III
10
III
II.
III
III
II.
I.I
I.I
III
.I.
III
3
I.I
.II
.II
16
II.
.II
.II
III
II.
III
III
II.
.II
.II
II.
II.
III
III
III
II.
7
III
.II
III
III
III
III
III
14
.I.
III
.I.
III
III
III
I...

output:

First
First
Second
First
First
Second
First
Second
Second
First
First
First
First
First
First
First
Second
Second
Second
Second
First
First
First
Second
First
First
First
Second
First
First
Second
Second
Second
First
First
First
First
First
First
First
First
First
Second
First
Second
First
First
Sec...

result:

ok 30000 lines

Test #10:

score: 0
Accepted
time: 877ms
memory: 36068kb

input:

30000
6
III
.II
.I.
III
II.
.I.
6
I.I
.I.
.II
I.I
.I.
I.I
1
III
1
II.
3
I.I
I.I
I.I
15
I.I
I.I
I.I
I.I
.I.
I.I
.I.
I.I
I.I
I.I
.I.
I.I
I.I
.I.
I.I
2
I.I
I.I
12
III
.I.
III
I.I
.I.
.II
.I.
I.I
.I.
I.I
I.I
.II
9
.I.
I.I
III
III
III
III
.I.
III
.I.
13
.I.
I.I
.I.
III
.II
.II
III
.II
.II
I.I
III
III
.I....

output:

First
Second
First
First
Second
Second
Second
First
First
First
First
Second
First
First
First
First
Second
First
Second
First
First
First
Second
Second
First
First
First
Second
Second
Second
First
Second
First
First
First
First
Second
First
Second
First
First
Second
First
First
First
Second
Second
...

result:

ok 30000 lines

Test #11:

score: 0
Accepted
time: 884ms
memory: 36056kb

input:

30000
11
.I.
.II
.I.
I.I
II.
.I.
II.
.I.
III
.I.
I.I
13
III
III
.II
II.
.I.
I.I
.II
III
I.I
.II
I.I
.I.
I.I
18
.II
.I.
II.
II.
I.I
II.
.I.
III
.II
I.I
.I.
.II
III
I.I
.I.
II.
II.
III
18
.I.
III
.I.
III
III
II.
III
I.I
I.I
.I.
I.I
III
.II
III
.I.
III
.II
II.
4
I.I
III
.I.
III
15
II.
.I.
III
III
.II
I...

output:

First
First
First
Second
Second
Second
First
First
Second
First
First
First
Second
First
First
First
Second
First
First
First
Second
First
Second
First
Second
First
Second
Second
Second
First
First
First
Second
First
Second
First
Second
First
Second
Second
First
First
First
First
First
First
First
F...

result:

ok 30000 lines

Test #12:

score: 0
Accepted
time: 897ms
memory: 35964kb

input:

30000
11
.II
III
II.
II.
.II
II.
III
II.
II.
II.
II.
17
III
II.
II.
II.
II.
II.
.II
II.
III
II.
III
III
.II
III
.II
.II
.II
11
III
III
III
III
III
III
III
II.
III
II.
III
14
III
III
III
III
III
III
III
III
III
II.
III
III
.II
III
9
III
.II
II.
III
.II
II.
III
III
.II
8
III
II.
.II
III
III
II.
.II
.I...

output:

First
First
Second
Second
First
First
First
Second
First
First
Second
First
First
First
First
First
First
First
First
First
First
First
Second
First
First
First
Second
First
Second
First
First
First
First
First
First
First
First
Second
First
First
Second
Second
Second
Second
First
First
First
First
...

result:

ok 30000 lines

Test #13:

score: 0
Accepted
time: 868ms
memory: 35920kb

input:

30000
16
II.
III
III
III
I.I
III
III
III
III
III
III
III
.II
III
III
III
18
I.I
I.I
I.I
I.I
I.I
I.I
II.
.II
.II
II.
I.I
.I.
I.I
I.I
.I.
I.I
.II
I.I
17
III
III
II.
II.
.II
.II
II.
.II
.II
.II
II.
III
.II
.II
.II
II.
.II
6
I.I
I.I
I.I
II.
I.I
I.I
2
III
.I.
1
I.I
5
II.
I.I
I.I
I.I
.I.
8
.II
II.
III
I.I...

output:

Second
First
First
First
First
Second
First
First
First
First
First
Second
Second
First
Second
First
Second
First
Second
First
Second
First
Second
Second
Second
First
Second
Second
First
First
First
Second
First
First
First
First
Second
Second
First
First
Second
Second
Second
Second
First
Second
Sec...

result:

ok 30000 lines

Test #14:

score: 0
Accepted
time: 870ms
memory: 35920kb

input:

30000
3
.II
.II
.II
11
III
I.I
.I.
I.I
III
I.I
II.
.I.
.II
I.I
I.I
7
.II
I.I
I.I
I.I
I.I
III
.I.
17
III
I.I
.II
II.
III
I.I
.I.
III
III
I.I
.I.
I.I
III
I.I
I.I
II.
I.I
6
III
II.
.II
III
I.I
.II
4
II.
III
III
.I.
8
III
III
III
III
.II
III
.II
III
17
.II
.II
.II
II.
III
II.
II.
III
II.
.II
II.
.II
II....

output:

First
Second
Second
First
First
First
First
First
First
First
Second
First
First
First
First
First
First
First
First
First
First
First
Second
Second
First
First
Second
First
Second
Second
First
First
Second
First
Second
First
First
First
First
Second
First
Second
First
First
Second
Second
Second
Fir...

result:

ok 30000 lines

Test #15:

score: 0
Accepted
time: 889ms
memory: 36076kb

input:

30000
17
II.
III
.II
III
III
III
.II
.II
III
II.
III
III
.II
III
.II
II.
III
1
III
15
III
I.I
.II
III
III
III
.II
.II
II.
II.
I.I
.II
.I.
.II
II.
10
.II
II.
II.
III
II.
II.
.II
II.
II.
II.
5
.II
II.
II.
.II
II.
8
I.I
.I.
III
III
.II
.II
III
I.I
19
.II
.II
II.
II.
.II
.II
.II
.II
II.
.II
.II
II.
.II
...

output:

First
First
Second
Second
First
First
First
Second
First
First
First
First
First
First
First
First
Second
First
First
First
First
First
First
First
First
First
First
First
First
Second
First
Second
First
Second
First
First
First
Second
First
First
First
First
First
First
First
First
First
First
Firs...

result:

ok 30000 lines

Test #16:

score: 0
Accepted
time: 877ms
memory: 36088kb

input:

30000
11
I.I
.I.
I.I
.I.
I.I
.I.
III
I.I
I.I
.I.
I.I
6
.I.
II.
.II
.I.
III
I.I
11
III
I.I
I.I
.I.
III
III
I.I
I.I
.II
.II
I.I
12
III
III
I.I
.I.
III
II.
.I.
I.I
I.I
I.I
III
I.I
4
.I.
III
.I.
II.
9
III
.I.
III
.I.
I.I
.I.
.II
.I.
III
5
III
.I.
I.I
II.
I.I
15
.II
III
.II
I.I
II.
.I.
II.
I.I
III
III
.I...

output:

First
First
Second
First
First
First
Second
First
First
First
First
First
First
First
First
Second
First
Second
First
Second
First
First
First
Second
First
First
First
Second
Second
First
Second
Second
Second
First
Second
First
Second
Second
First
Second
Second
Second
First
Second
First
First
Second...

result:

ok 30000 lines

Test #17:

score: 0
Accepted
time: 874ms
memory: 36192kb

input:

30000
2
III
II.
12
I.I
II.
II.
II.
II.
III
.I.
III
I.I
III
I.I
.II
17
.II
III
III
III
III
III
III
.II
III
III
III
III
III
III
III
.II
.II
17
.I.
I.I
.I.
I.I
.I.
I.I
.I.
I.I
I.I
.I.
I.I
.I.
I.I
.I.
I.I
.I.
I.I
4
.I.
.II
III
II.
6
.II
III
II.
.II
III
III
6
III
II.
II.
I.I
.I.
I.I
2
.II
III
18
III
III
...

output:

Second
First
First
Second
Second
First
Second
Second
First
Second
First
Second
First
Second
Second
First
First
Second
First
First
First
First
First
Second
Second
First
First
First
First
First
Second
Second
Second
Second
First
First
First
Second
Second
First
First
First
First
First
First
First
First
...

result:

ok 30000 lines

Test #18:

score: 0
Accepted
time: 874ms
memory: 36072kb

input:

30000
2
.II
II.
1
.II
9
.II
I.I
III
II.
II.
I.I
III
.I.
I.I
11
.II
II.
III
II.
III
II.
.II
.II
I.I
.I.
II.
11
II.
I.I
III
II.
.I.
III
.II
.I.
III
.I.
II.
1
.II
1
III
5
.I.
I.I
III
I.I
.II
7
III
I.I
III
.I.
III
II.
I.I
8
III
III
.I.
.II
II.
II.
.II
.II
17
I.I
III
III
.I.
II.
I.I
.II
I.I
.I.
.II
III
....

output:

First
First
Second
First
First
First
First
First
First
First
First
First
Second
Second
First
First
First
Second
First
First
First
First
Second
First
Second
First
First
Second
First
First
First
First
First
First
First
First
First
First
First
First
First
First
First
First
Second
First
First
Second
Fir...

result:

ok 30000 lines