QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#533539 | #5077. Card Game | Tiga_Pilot_2 | TL | 40ms | 5232kb | C++20 | 4.4kb | 2024-08-26 02:57:59 | 2024-08-26 02:57:59 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define sim template < class c
#define ris return * this
#define dor > debug & operator <<
#define eni(x) sim > typename \
enable_if<sizeof dud<c>(0) x 1, debug&>::type operator<<(c i) {
sim > struct rge {c b, e;};
sim > rge<c> range(c i, c j) {return rge<c>{i,j};}
sim > auto dud(c* x) -> decltype(cerr << *x, 0);
sim > char dud(...);
struct debug{
~debug() {cerr << endl;}
eni(!=) cerr << boolalpha << i; ris; }
eni(==) ris << range(begin(i), end(i)); }
sim, class b dor(pair <b, c> d) {
ris <<"(" <<d.fi <<", " <<d.se <<")";
}
sim dor(rge<c> d) {
*this << "[";
for(auto it=d.b;it!=d.e;++it) {
*this <<", " + 2*(it==d.b) <<*it;
}
ris << "]";
}
};
#define imie(...) "[" <<#__VA_ARGS__ ": " << (__VA_ARGS__) <<"]"
#define rep(i, a, b) for(int i = a; i < (b); ++i)
#define per(i, a, b) for(int i = a; i > (b); --i)
#define ar array
#define sz(x) (int) (x).size()
#define pii pair<int,int>
#define fi first
#define se second
typedef long long ll;
typedef pair<ll,ll> pll;
typedef pair<double,double> pdd;
typedef pair<double,int> pdi;
typedef vector<int> vi;
#define all(x) (x).begin(), (x).end()
template<typename T>
void min_self(T& A, T B) {
A = min(A,B);
}
template<typename T>
void max_self(T& A, T B) {
A = max(A,B);
}
const int mxn=25;
int n,m;
string s[mxn];
using pipi = pair<pii,pii>;
void solve() {
cin >>n >>m;
rep(i,0,n) {
cin >>s[i];
}
map<pipi,int> sg;
for(int len1=1;len1<=n+m-1;len1+=2) {
rep(imj1,-m+1,n) {
int imj2 = imj1+len1-1;
if(imj2>=n) break;
for(int len2=1;len2<=n+m-1;len2+=2) {
for(int ipj1 = (imj1+n*m*2)%2;ipj1<n+m-1;ipj1+=2) {
int ipj2 = ipj1+len2-1;
if(ipj2>=n+m-1) break;
pipi st = {{imj1,imj2},{ipj1,ipj2}};
set<int> mx;
for(int imji=imj1;imji<=imj2;imji+=2) {
for(int ipji=ipj1; ipji<=ipj2;ipji+=2) {
int i = (imji+ipji)/2;
int j = (ipji-imji)/2;
if(i>=0&&i<n&&j>=0&&j<m) {
int temp = 0;
if(s[i][j]=='R') {
temp ^= sg[{{imj1,imj2},{ipj1,ipji-2}}];
temp ^= sg[{{imj1,imj2},{ipji+2,ipj2}}];
} else if(s[i][j]=='B') {
temp ^= sg[{{imj1,imji-2},{ipj1,ipj2}}];
temp ^= sg[{{imji+2,imj2},{ipj1,ipj2}}];
} else {
pii kiri = {imj1,imji-2}, knn = {imji+2,imj2}, ats={ipj1,ipji-2}, bwh = {ipji+2,ipj2};
temp ^= sg[{kiri,ats}];
temp ^= sg[{kiri,bwh}];
temp ^= sg[{knn,ats}];
temp ^= sg[{knn,bwh}];
}
mx.insert(temp);
}
}
}
int mxi = 0;
for(auto a : mx) {
if(a==mxi) {
mxi++;
} else {
break;
}
}
sg[st] = mxi;
// debug() <<imie(st) imie(mxi);
}
}
}
}
int kr1 = (-m+1),kr2=kr1+1;
int kn1 = n-1,kn2=kn1-1;
if(((kn1-kr1)%2)) {
swap(kn1,kn2);
}
int bwh1 = 0, bwh2=1;
int ats1 = n+m-2, ats2=ats1-1;
if(ats1%2) {
swap(ats1,ats2);
}
if((kr1-bwh1)%2) {
swap(bwh1,bwh2);
swap(ats1,ats2);
}
int ans = sg[{{kr1,kn1},{bwh1,ats1}}]^sg[{{kr2,kn2},{bwh2,ats2}}];
// debug() <<imie(kr1) imie(kn1) imie(bwh1) imie(ats1);
// debug() <<imie(kr2) imie(kn2) imie(bwh2) imie(ats2);
if(ans) {
cout <<"W\n";
} else {
cout <<"L\n";
}
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
solve();
}
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3556kb
input:
1 3 BBB
output:
W
result:
ok single line: 'W'
Test #2:
score: 0
Accepted
time: 0ms
memory: 3888kb
input:
2 3 BBG RGR
output:
W
result:
ok single line: 'W'
Test #3:
score: 0
Accepted
time: 0ms
memory: 3616kb
input:
2 2 GG GG
output:
L
result:
ok single line: 'L'
Test #4:
score: 0
Accepted
time: 1ms
memory: 3628kb
input:
1 10 RRRRRRRRRR
output:
L
result:
ok single line: 'L'
Test #5:
score: 0
Accepted
time: 1ms
memory: 3604kb
input:
1 11 BBBBBBBBBBB
output:
W
result:
ok single line: 'W'
Test #6:
score: 0
Accepted
time: 1ms
memory: 3868kb
input:
10 1 G G G G G G G G G G
output:
L
result:
ok single line: 'L'
Test #7:
score: 0
Accepted
time: 1ms
memory: 3708kb
input:
11 1 R R R R R R R R R R R
output:
W
result:
ok single line: 'W'
Test #8:
score: 0
Accepted
time: 10ms
memory: 4148kb
input:
2 20 BBGGBGBGGBBGGBGGBGGG GGBBBGBGBBBGBGGGGGGG
output:
L
result:
ok single line: 'L'
Test #9:
score: 0
Accepted
time: 9ms
memory: 4320kb
input:
2 20 GBGBGBBBGGGGGBGGBBBB GGGBBBGBGBGBGGBGBGGB
output:
W
result:
ok single line: 'W'
Test #10:
score: 0
Accepted
time: 7ms
memory: 4412kb
input:
2 21 GBBBBBBGGBGGBBBGBGGBG GBBBGBBBGBBBGGBGBBGBB
output:
L
result:
ok single line: 'L'
Test #11:
score: 0
Accepted
time: 10ms
memory: 4236kb
input:
2 21 GGGBBBGBBGBGGBBGGGBGG BGBBGBBBBBBGBBBBGGGBB
output:
W
result:
ok single line: 'W'
Test #12:
score: 0
Accepted
time: 8ms
memory: 4132kb
input:
20 2 BG GG BG GB BB GB BG GG BB BB BB BB BG BB BG GG BB BG GB BG
output:
L
result:
ok single line: 'L'
Test #13:
score: 0
Accepted
time: 8ms
memory: 4144kb
input:
20 2 BB GB GG GG GB BG GG GB BB BB GG GB BB BG BB BB BG BG BG BG
output:
W
result:
ok single line: 'W'
Test #14:
score: 0
Accepted
time: 6ms
memory: 4244kb
input:
21 2 GB BG BB BG GB BG BG BG GG GG GB BG GG GB GB BG GB BG BG GG GB
output:
L
result:
ok single line: 'L'
Test #15:
score: 0
Accepted
time: 11ms
memory: 4188kb
input:
21 2 BG BB GG GB BG BB GB GG BG GG BB GG BG BB GB GB GB BG BB BG GG
output:
W
result:
ok single line: 'W'
Test #16:
score: 0
Accepted
time: 6ms
memory: 4152kb
input:
2 20 BRRBBBBRBBBBBBBRBBBB RBRRRBRBBBBRRRBBBRRR
output:
L
result:
ok single line: 'L'
Test #17:
score: 0
Accepted
time: 7ms
memory: 4144kb
input:
2 20 BRBBBBBRRRBBRBRBRRBB BBBBRBRRRBBRRRRRBBBB
output:
W
result:
ok single line: 'W'
Test #18:
score: 0
Accepted
time: 7ms
memory: 4128kb
input:
2 21 BBRRRRRBRBRRBRBBRBRBR RBBRBBRRRRRBRBBBRRBBB
output:
L
result:
ok single line: 'L'
Test #19:
score: 0
Accepted
time: 3ms
memory: 4216kb
input:
2 21 RBBBRBBBBBBBRRRRRRRBB BRRRRRBRBBRBBBBRBRBRR
output:
W
result:
ok single line: 'W'
Test #20:
score: 0
Accepted
time: 6ms
memory: 4100kb
input:
20 2 BB BR BB BB RR RR RR BB BR RR BR RR BR BB BR BB RR BB BR BR
output:
L
result:
ok single line: 'L'
Test #21:
score: 0
Accepted
time: 6ms
memory: 4036kb
input:
20 2 BB RR RR BR BB BR RR RB BR RB RB RR RB RB BB BR BR RR BR RR
output:
W
result:
ok single line: 'W'
Test #22:
score: 0
Accepted
time: 7ms
memory: 4288kb
input:
21 2 BR BB BB BB BR RR RB BR BB RB RR RR RB BB RR BR BR RR RB RR RB
output:
L
result:
ok single line: 'L'
Test #23:
score: 0
Accepted
time: 7ms
memory: 4244kb
input:
21 2 BR BR BB BB BR BB RB RB RR RR RR RB RB RB RB BR RB BB BB BB BR
output:
W
result:
ok single line: 'W'
Test #24:
score: 0
Accepted
time: 35ms
memory: 5044kb
input:
3 24 GGRGGGRGRGGRRGGGRRGRRGGR RGRRGGGGRGRGGGGGRRRRGGGG GRRGGRRRGGGGRRGRGGGGRRGG
output:
L
result:
ok single line: 'L'
Test #25:
score: 0
Accepted
time: 33ms
memory: 4744kb
input:
3 24 GGGRGRGGRGRGRGGRGGGRRRRR RRRRGGRGRGGGRRGRGRRRGRRR GGRGGRGRRRRGGGGGGRGRGRRR
output:
W
result:
ok single line: 'W'
Test #26:
score: 0
Accepted
time: 34ms
memory: 5212kb
input:
3 25 RRRRRGRRGGRRRRRRGRGGRRRGG GGGGRGRGGRRRRRGRGRGRGRRRR RGGRRRRRGGGGGRRRGGGGGGGRG
output:
L
result:
ok single line: 'L'
Test #27:
score: 0
Accepted
time: 40ms
memory: 4972kb
input:
3 25 RRGRGRRGRGRGGRGGRRGGRRRGG RGRRGRRGRGGGGGRGGRRRGGGGG RRGGRRGRGGGGGRGRGRRRRGRRG
output:
W
result:
ok single line: 'W'
Test #28:
score: 0
Accepted
time: 30ms
memory: 5036kb
input:
24 3 RGG GRG GRR GGG GGG RGR GRG RGG RRG GRR GGR GRR GGR GRR RGR RGR GRR GRG RGR RRG RRG RGR GGG RRG
output:
L
result:
ok single line: 'L'
Test #29:
score: 0
Accepted
time: 28ms
memory: 4736kb
input:
24 3 GRG GGR RGG GRR RRR GRR RRG GGR GGR RGR GRR GGR RGR GRR RRG GGR GRR RGR GRG GGG GRG RRR RRG GRG
output:
W
result:
ok single line: 'W'
Test #30:
score: 0
Accepted
time: 39ms
memory: 4880kb
input:
25 3 RGR RGG GGG GGR RGG GGR GGR RRG GGG GGR GRR GRG RRR GGG RGG RGG GRG RGG RRR GGG RGR RGR RGG GRG GGR
output:
L
result:
ok single line: 'L'
Test #31:
score: 0
Accepted
time: 39ms
memory: 4876kb
input:
25 3 RRG RGG GRR RGG RGG RRR RRR GRG GRG GGG RGG RRG RRG RRG GGR GGG GGG RGR GGG GGR GGR GRG RRG RGG GRG
output:
W
result:
ok single line: 'W'
Test #32:
score: 0
Accepted
time: 20ms
memory: 4732kb
input:
3 24 RRRBBRBBBBBBBBBBBBBBRBRR BRBRRBBRBRBRRBBRRBRBBBBB RRBRBBBRBBBRBRBBBBBBBBRB
output:
L
result:
ok single line: 'L'
Test #33:
score: 0
Accepted
time: 21ms
memory: 5052kb
input:
3 24 BRBRRBBRBRRBRRRBBBRBRRBB BRBBRBBBBBRBRRRBRRRRRBBR BRBRBBRRRBRBRRBBBBRRBRRB
output:
W
result:
ok single line: 'W'
Test #34:
score: 0
Accepted
time: 25ms
memory: 4936kb
input:
3 25 BBRRBBBBBBBRBBBRBRBRBRBBB RRRBBBBRRRRBRRRRRBBBBRBRB RRRRRBRRBRRBRBRRRBBRRBRRR
output:
L
result:
ok single line: 'L'
Test #35:
score: 0
Accepted
time: 24ms
memory: 5028kb
input:
3 25 BBRBBBBBRBBBBBRRRRRRBBRRB RRRBBRRRBBRBBBRRRBBBBBRBR BBRBRRRBRBBRRRRRRRRBBRRRB
output:
W
result:
ok single line: 'W'
Test #36:
score: 0
Accepted
time: 17ms
memory: 4812kb
input:
24 3 RBR RBB BRB BBR BRR BRR RRR BBR RBR RBB RBR RBR BBB BBB BBR RRB RRB RBR RRR RRB BRB RRR BBR RBB
output:
L
result:
ok single line: 'L'
Test #37:
score: 0
Accepted
time: 16ms
memory: 5028kb
input:
24 3 RRR RBB BBR RBB RBB BRR BBR BRR BBB BBR RRB RRR RBB RRR RRB RRR RRB RRR RBB RBR RRB BRB RBR BBB
output:
W
result:
ok single line: 'W'
Test #38:
score: 0
Accepted
time: 25ms
memory: 5232kb
input:
25 3 BBR BRB RBB RRR BBR RRR RBB BBR BRR RBR RBR BRR BBB RBR BBB BRB BBB RRB RRB RBB BRB RRB RRR BBB RRB
output:
L
result:
ok single line: 'L'
Test #39:
score: 0
Accepted
time: 21ms
memory: 4960kb
input:
25 3 BBB BRB BBB RRR RBR BBB RBR BBR BRB RBR RRR RRR RBB BBB RBR RRR RBB BBB BBR RBB BRR RBB RBB RBR BBB
output:
W
result:
ok single line: 'W'
Test #40:
score: -100
Time Limit Exceeded
input:
22 22 RBRGRBGRGGGBRRRBRBBBRG RBGBRGBGRBBGRGGBRRBRRG GGRBGGRRBBGRBBGBBGRGGG GBBBGBBGGBBGGGGBGGGRRG BBBRBGRBGRGRBGRBRGBBBG RGRGGBRBBRRBBBBBBRRGRG BBBGRRGRRRBBGGBRRGRGGR GRGGGGGBBRGRRRRGBRRRRG BRGBRBGBGGRGGRRGGGGBGB GBRBGGRGRGRGGRBBGGGGRB RBRGBGBBBGBBBGBGBGGBBB RBBBBBBGBBRBRRBBRGBBGR RGBBBGBRRGGRGBBRGG...