QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#101558#6377. LaLa and Magic Stonezhoukangyang#WA 7ms5688kbC++172.5kb2023-04-30 10:55:572023-04-30 10:56:53

Judging History

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

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-04-30 10:56:53]
  • 评测
  • 测评结果:WA
  • 用时:7ms
  • 内存:5688kb
  • [2023-04-30 10:55:57]
  • 提交

answer

#include<bits/stdc++.h>
#define L(i, j, k) for(int i = (j); i <= (k); ++i)
#define R(i, j, k) for(int i = (j); i >= (k); --i)
#define ll long long
#define vi vector <int>
#define sz(a) ((int) (a).size())
#define me(f, x) memset(f, x, sizeof(f))
#define uint unsigned int
#define ull unsigned long long 
#define bs bitset < N >
using namespace std;
const int N = 2007, mod = 998244353;
int n, m;
char s[N][N];
int gen[N], tp;
inline bool canput(int x, int y) {
	if(s[x][y] == '1' || s[x][y + 2] == '1' || s[x + 2][y] == '1' || s[x + 2][y + 2] == '1') 
		return 0;
	if((s[x + 1][y] - '0') + (s[x][y + 1] - '0') + 
		(s[x + 1][y + 2] - '0') + (s[x + 2][y + 1] - '0') > 1) return 0;
	return 1;
}
vector < pair < int, int > > rt[N];
int main() {
	ios :: sync_with_stdio(false);
	cin.tie(0); cout.tie(0);
	cin >> n >> m;
	L(i, 1, n) {
		cin >> (s[i] + 1);
	}
	auto put = [&] (int x, int y) {
		if(x < 1 || x > n || y < 1 || y > m || s[x][y] == '1') {
			cout << "0" << endl;
			exit(0);
		}
		s[x][y] = '1';
		return ;
	};
	int ans = 1;
	L(sum, 2, n + m) {
		for(auto u : rt[sum]) {
			int x1 = u.first, y1 = sum - x1;
			int x2 = u.second, y2 = sum - x1;
			if(canput(x1, y1)) {
				s[x2][y2] = 1;
			} else {
				s[x1][y1] = 1;
			}
		}
		tp = 0;
		L(i, 1, n) {
			int j = sum - i;
			if(1 <= j && j <= m && s[i][j] == '0') {
				gen[++tp] = i;
				put(i, j);
				put(i, j + 2);
				put(i + 2, j + 2);
				put(i + 2, j);
			}
		}
		L(i, 1, tp) {
			int x = gen[i];
			int y = sum - gen[i];
			if(gen[i] + 1 == gen[i + 1]) {
				put(x, y + 1);
				put(x + 1, y);
				put(x + 1, y + 2);
				put(x + 2, y - 1);
				put(x + 2, y + 1);
				put(x + 3, y);
				ans = (ll) ans * 2 % mod;
				++i;
			} else {
				vector < pair < int, int > > VC;
				VC.emplace_back(x, y + 1);
				VC.emplace_back(x + 1, y);
				VC.emplace_back(x + 1, y + 2);
				VC.emplace_back(x + 2, y + 1);
				int ok = 0;
				L(p, 0, 3) {
					if(s[VC[p].first][VC[p].second] == '1') {
						ok = 1;
						L(i, 0, 3) 
							if(i != p) 
								put(VC[i].first, VC[i].second);
						break;
					}
				} 
				if(ok) continue;
				put(x + 1, y);
				put(x, y + 1);
				if(s[x + 1][y + 1] == '0') {
					put(x + 1, y + 1);
					put(x + 2, y + 1);
					put(x + 1, y + 2);
					put(x + 1, y + 3);
					put(x + 2, y + 3);
					put(x + 3, y + 1); 
					put(x + 3, y + 2);
					put(x + 3, y + 3);
					ans = (ll) ans * 2 % mod;
				} else {
					rt[sum + 3].emplace_back(x + 1, x + 2);
				}
			}
		}
	}
	cout << ans << '\n';
	return 0;
}

詳細信息

Test #1:

score: 100
Accepted
time: 2ms
memory: 3448kb

input:

4 4
0001
0000
0000
1000

output:

2

result:

ok 1 number(s): "2"

Test #2:

score: 0
Accepted
time: 0ms
memory: 3408kb

input:

5 4
0001
0101
0000
1010
1000

output:

1

result:

ok 1 number(s): "1"

Test #3:

score: 0
Accepted
time: 2ms
memory: 3496kb

input:

3 3
111
111
111

output:

1

result:

ok 1 number(s): "1"

Test #4:

score: 0
Accepted
time: 0ms
memory: 3408kb

input:

3 4
1111
1111
1111

output:

1

result:

ok 1 number(s): "1"

Test #5:

score: 0
Accepted
time: 0ms
memory: 3500kb

input:

3 1000
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...

output:

1

result:

ok 1 number(s): "1"

Test #6:

score: 0
Accepted
time: 1ms
memory: 3508kb

input:

4 3
111
111
111
111

output:

1

result:

ok 1 number(s): "1"

Test #7:

score: 0
Accepted
time: 2ms
memory: 3364kb

input:

4 4
1111
1111
1111
1111

output:

1

result:

ok 1 number(s): "1"

Test #8:

score: 0
Accepted
time: 0ms
memory: 3516kb

input:

4 1000
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...

output:

1

result:

ok 1 number(s): "1"

Test #9:

score: 0
Accepted
time: 3ms
memory: 5688kb

input:

1000 3
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
111
1...

output:

1

result:

ok 1 number(s): "1"

Test #10:

score: 0
Accepted
time: 0ms
memory: 5408kb

input:

1000 4
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
111...

output:

1

result:

ok 1 number(s): "1"

Test #11:

score: 0
Accepted
time: 4ms
memory: 5428kb

input:

1000 1000
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...

output:

1

result:

ok 1 number(s): "1"

Test #12:

score: 0
Accepted
time: 2ms
memory: 3412kb

input:

3 3
000
010
010

output:

1

result:

ok 1 number(s): "1"

Test #13:

score: 0
Accepted
time: 2ms
memory: 3464kb

input:

3 3
000
011
000

output:

1

result:

ok 1 number(s): "1"

Test #14:

score: 0
Accepted
time: 1ms
memory: 3416kb

input:

3 3
010
010
000

output:

1

result:

ok 1 number(s): "1"

Test #15:

score: 0
Accepted
time: 2ms
memory: 3416kb

input:

3 3
000
110
000

output:

1

result:

ok 1 number(s): "1"

Test #16:

score: 0
Accepted
time: 2ms
memory: 3416kb

input:

4 4
1000
0000
0000
0001

output:

2

result:

ok 1 number(s): "2"

Test #17:

score: 0
Accepted
time: 2ms
memory: 3400kb

input:

4 4
0001
0000
0000
1000

output:

2

result:

ok 1 number(s): "2"

Test #18:

score: 0
Accepted
time: 2ms
memory: 3484kb

input:

3 3
010
101
101

output:

0

result:

ok 1 number(s): "0"

Test #19:

score: 0
Accepted
time: 2ms
memory: 3404kb

input:

3 4
1011
0100
1111

output:

0

result:

ok 1 number(s): "0"

Test #20:

score: 0
Accepted
time: 2ms
memory: 3412kb

input:

3 1000
10011010111111111111000101011100101000000011110011011000110000100110110110111110000111011001010010011100001111111011111111110010110100011101011100100100001110010011111011111101001110011010010110110011001100101010001101100111101001001001101000101011101000100100001111100000010010111101101001000...

output:

0

result:

ok 1 number(s): "0"

Test #21:

score: 0
Accepted
time: 2ms
memory: 3448kb

input:

4 3
010
101
110
000

output:

0

result:

ok 1 number(s): "0"

Test #22:

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

input:

4 4
0110
1010
1101
1110

output:

0

result:

ok 1 number(s): "0"

Test #23:

score: 0
Accepted
time: 2ms
memory: 3412kb

input:

4 1000
01001110100001111110010111111001110111001110100100101101001110110111001111101100111110001110100000010101110001100001011000100111001111101110100001010101100011101110000010110101101100001000111101111000110100110000110111111101111101000011100001001110011000110110001110110011010111101101101001000...

output:

0

result:

ok 1 number(s): "0"

Test #24:

score: 0
Accepted
time: 3ms
memory: 5376kb

input:

1000 3
011
011
101
011
101
011
100
101
110
010
101
010
010
100
100
000
010
101
011
110
101
110
011
101
100
110
011
011
101
101
111
001
101
100
110
110
101
011
010
100
100
110
110
100
110
101
111
011
101
001
101
101
001
110
110
010
101
110
010
100
010
110
010
110
111
101
100
001
000
001
110
001
111
0...

output:

0

result:

ok 1 number(s): "0"

Test #25:

score: 0
Accepted
time: 3ms
memory: 5460kb

input:

1000 4
1000
0000
1010
0100
0101
0011
1101
0000
1001
0001
1111
0100
1101
0111
1110
1001
0100
0011
0011
1000
1001
1100
0110
0100
1100
0111
0010
0110
1111
1101
1001
0010
1110
1100
1000
0111
0010
0100
1001
0101
1111
0000
0110
0011
0110
1000
0110
1111
0000
0000
1011
1000
0000
0101
1001
0001
0100
0110
011...

output:

0

result:

ok 1 number(s): "0"

Test #26:

score: 0
Accepted
time: 7ms
memory: 5460kb

input:

1000 1000
00111010100111001111101110110011111101010111001010011001011000100100110011000111000000100010011101100011001001101110100001000101111100100110101010101011000111010101000110000110001100110011111000011100100001001110110000110010000111010110100001010100100101000011110001010111011011101111001011...

output:

0

result:

ok 1 number(s): "0"

Test #27:

score: 0
Accepted
time: 2ms
memory: 3572kb

input:

58 17
10001101010001111
10111101010000111
10001100010000000
00011000111000010
01110000111111010
00010000111111111
11110001111110001
11100010001100001
11100000000100001
11100000000100011
11110001000111000
00010001000110000
00000101000010000
00000101000010001
10001111100011111
11111111000111000
111000...

output:

0

result:

ok 1 number(s): "0"

Test #28:

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

input:

16 13
1111111111111
1111111111111
1000110001111
1000100000001
1000000000000
1100000010000
1111111111000
1111111111111
1110001111111
1110000111000
1110000110000
1111000110000
1100010000001
1000010000111
1000010000111
1000111000111

output:

0

result:

ok 1 number(s): "0"

Test #29:

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

input:

9 78
000111111111111111000111111111100011100010000001111111111111111111111111110001
010100011111111111000011111111100001000000000000111111110001111000110001110000
110100001111110001000011100011100001000000000000010111110000110000100001110000
1000000011111100001000111000011100010001000110000100001100...

output:

0

result:

ok 1 number(s): "0"

Test #30:

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

input:

18 55
1111110001111111111111000111111111111111111000111111111
1111110000100010001000000011100011000111110000111111111
1110000000111010000010000011100001000000010000111111111
1100001000100010000010100011100001000000000001100011111
1100001110001111000111111111110001100000001111100000101
11000111100001...

output:

0

result:

ok 1 number(s): "0"

Test #31:

score: 0
Accepted
time: 2ms
memory: 3640kb

input:

124 5
10001
10000
10000
11000
00011
00001
00001
10001
00011
00001
00001
10001
11111
00011
01011
01011
11111
11111
10001
00001
00001
00011
10001
00001
00001
00011
00011
01011
01011
11111
11111
11111
11000
10000
10000
10001
11111
11111
11111
11111
11000
10000
10000
10001
10001
10000
10000
11000
11000
...

output:

1048576

result:

ok 1 number(s): "1048576"

Test #32:

score: 0
Accepted
time: 0ms
memory: 3628kb

input:

117 6
110001
111101
110001
111000
110000
110000
110001
111111
100011
100001
100001
110001
111111
111111
111111
111000
110000
110000
110001
100011
000011
000011
000111
000111
000011
000011
100011
000111
000011
000011
100011
111111
000101
010111
010000
110000
110000
110001
111111
111111
111111
111111
...

output:

0

result:

ok 1 number(s): "0"

Test #33:

score: -100
Wrong Answer
time: 0ms
memory: 3532kb

input:

25 19
1111111111111111111
0001111111111000111
1101111111111110111
0001110001111000111
1111100001111100011
1111100000001100001
1111100010101100001
1111111110101110001
0001111111111111000
1101100011111110000
0001000011000110000
1111000010000110001
1000000110000000111
0000111110001000011
00001111111110...

output:

0

result:

wrong answer 1st numbers differ - expected: '8192', found: '0'