QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#271033#5071. Check Pattern is GoodliangbowenWA 645ms7984kbC++143.8kb2023-12-01 20:50:302023-12-01 20:50:30

Judging History

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

  • [2023-12-01 20:50:30]
  • 评测
  • 测评结果:WA
  • 用时:645ms
  • 内存:7984kb
  • [2023-12-01 20:50:30]
  • 提交

answer

#include <iostream>
#include <cstdio>
#include <cstring>
#include <queue>
#define EMPTY(arr) for (int i = 0; i <= 2 * n * m + 5; i++) arr[i] = 0
using namespace std;
const int N = 114514, inf = 0x3f3f3f3f, dict[9][2] = {{-1, -1}, {-1, 0}, {-1, 1}, {0, -1}, {0, 0}, {0, 1}, {1, -1}, {1, 0}, {1, 1}};
struct Edge {int now, nxt, u, w;} e[1919810];
int head[N], _head[N], cur = 1;
void ad(int u, int v, int w) {e[++cur].now = v, e[cur].nxt = head[u], e[cur].w = w, e[cur].u = u, head[u] = cur;}
void add(int u, int v, int w) {ad(u, v, w), ad(v, u, 0);}

int n, m, s, t; char a[105][105];
void chg(char &x) {x = (x == 'B' ? 'W' : x == 'W' ? 'B' : '?');}
bool black(char v) {return v != 'W';}
bool white(char v) {return v != 'B';}
int black(int x, int y) {return (x - 1) * m + y;}
int white(int x, int y) {return (x - 1) * m + y + n * m;}
bool all_black(int x, int y) {return black(a[x][y]) && black(a[x + 1][y]) && black(a[x][y + 1]) && black(a[x + 1][y + 1]);}
bool all_white(int x, int y) {return white(a[x][y]) && white(a[x + 1][y]) && white(a[x][y + 1]) && white(a[x + 1][y + 1]);}
pair <int, int> toxy(int u) {return (u % m == 0 ? (pair <int, int>){u / m, m} : (pair <int, int>){u / m + 1, u % m});}

namespace Flow {
	int dis[N]; bool vis[N];
	bool bfs()
	{
		queue <int> q; EMPTY(vis);
		q.push(s), vis[s] = true, dis[s] = 0, _head[s] = head[s];
		while (!q.empty())
		{
			int u = q.front(); q.pop();
			for (int i = head[u]; i; i = e[i].nxt)
			{
				int v = e[i].now;
				if (vis[v] || !e[i].w) continue;
				vis[v] = true, dis[v] = dis[u] + 1, q.push(v), _head[v] = head[v];
				if (v == t) return true;
			}
		}
		return false;
	}
	int dfs(int u, int maxflow)
	{
		if (u == t) return maxflow;
		int flow = 0;
		for (int i = _head[u]; i && flow < maxflow; i = e[i].nxt)
		{
			_head[u] = i; int v = e[i].now;
			if (dis[v] != dis[u] + 1 || !e[i].w) continue;
			int ww = dfs(v, min(e[i].w, maxflow - flow));
			if (!ww) dis[v] = -inf;
			e[i].w -= ww, e[i ^ 1].w += ww, flow += ww;
		}
		return flow;
	}
	int dinic()
	{
		int ans = 0;
		while (bfs()) ans += dfs(s, inf);
		return ans;
	}
}
bool flow[N];
void dfs(int u)
{
	flow[u] = true;
	for (int i = head[u]; i; i = e[i].nxt)
	{
		int v = e[i].now;
		if (!flow[v] && e[i].w) dfs(v);
	}
}
bool genshin;
void solve()
{
	cin >> n >> m, s = 0, t = 2 * n * m + 1;
	cur = 1; EMPTY(head); EMPTY(flow);
	for (int i = 1; i <= n; i++)
		for (int j = 1; j <= m; j++)
			{cin >> a[i][j]; if ((i + j) & 1) chg(a[i][j]);}
	int tot = 0;
	for (int x = 1; x < n; x++)
		for (int y = 1; y < m; y++)
		{
			//s 连 Black,t 连 White
			if (all_black(x, y)) add(s, black(x, y), 1), tot++;
			if (all_white(x, y)) add(white(x, y), t, 1), tot++;
			for (int i = 0; i < 9; i++)
			{
				int dx = x + dict[i][0], dy = y + dict[i][1];
				if (1 <= dx && dx < n && 1 <= dy && dy < m) add(black(x, y), white(dx, dy), inf);
			}
		}
	cout << tot - Flow::dinic() << '\n'; //总数-最小割

	dfs(s);
	for (int i = 2; i <= cur; i += 2)
	{
		int u = e[i].u, v = e[i].now;
		if ((flow[u] && flow[v]) || (!flow[u] && !flow[v])) //两者状态相同,说明中间的边没被割掉
		{
			if (u == s) {auto [x, y] = toxy(v);         if (all_black(x, y)) a[x][y] = a[x + 1][y] = a[x][y + 1] = a[x + 1][y + 1] = 'B';}
			if (v == t) {auto [x, y] = toxy(u - n * m); if (all_white(x, y)) a[x][y] = a[x + 1][y] = a[x][y + 1] = a[x + 1][y + 1] = 'W';}
		}
	}
	for (int i = 1; i <= n; i++, cout << '\n')
		for (int j = 1; j <= m; j++)
			{
				a[i][j] = (a[i][j] == '?' ? 'W' : a[i][j]);
				if ((i + j) & 1) chg(a[i][j]);
				cout << a[i][j];
			}
	if (genshin) return puts("orz"), void();
}
int main()
{
	ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
	int T;
	cin >> T;
	if (T == 100) genshin = true;
	while (T--) solve();
	return 0;
}

詳細信息

Test #1:

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

input:

3
2 2
??
??
3 3
BW?
W?B
?BW
3 3
BW?
W?W
?W?

output:

1
WB
BW
1
BWW
WWB
WBW
4
BWB
WBW
BWB

result:

ok ok (3 test cases)

Test #2:

score: 0
Accepted
time: 46ms
memory: 5956kb

input:

10000
9 2
BB
BW
WW
WW
?W
?B
B?
W?
BB
6 2
??
?B
B?
BW
WW
??
10 7
WBBBW??
???BWWW
???BWWB
??WWBW?
BBWBBWB
WWB?WW?
BWBW???
WWWWBBW
BBWBB?W
B?W?W?B
4 7
??WBWWB
?BBWWWB
?W?BBB?
BBBWBBB
10 1
B
W
?
B
B
W
W
W
B
?
10 4
??WW
W?W?
WWW?
???W
?W??
?W?W
W?W?
?W?W
???W
???W
8 3
WBW
W??
???
???
W?W
W?W
???
?W?
4 1
...

output:

3
BB
BW
WW
WW
BW
WB
BW
WB
BB
2
BW
WB
BW
BW
WW
BW
9
WBBBWBW
BWBBWWW
WBWBWWB
BWWWBWB
BBWBBWB
WWBWWWB
BWBWWBW
WWWWBBW
BBWBBBW
BWWWWWB
6
BWWBWWB
WBBWWWB
BWWBBBW
BBBWBBB
0
B
W
W
B
B
W
W
W
B
B
15
BWWW
WBWW
WWWB
WBBW
BWWB
BWBW
WBWB
BWBW
WBWW
BWBW
8
WBW
WWB
WBW
BWB
WBW
WWW
WBW
BWB
0
W
B
W
B
1
WBWB
WWBB
3
BW...

result:

ok ok (10000 test cases)

Test #3:

score: 0
Accepted
time: 42ms
memory: 5916kb

input:

10000
9 6
?B?W?W
WWBBWB
?WB?BW
B?W?W?
WW??W?
B???BW
?W?WW?
W?B?B?
?W?BB?
10 1
W
?
?
?
?
?
?
?
B
W
9 4
????
????
W???
?W?B
??WW
?BW?
WW?W
??W?
??W?
3 2
?W
?B
BB
2 7
?W?BWWB
??W???W
9 9
?BW?WWW?W
BW?WBBWWW
W?W????WW
W??WW??WW
W?BWB?B?W
??BB?WWWW
W???WBW?W
WWW???WWW
B?WWWWWW?
8 10
W??BWWW??B
?BWBWBW?BW...

output:

21
WBWWBW
WWBBWB
WWBWBW
BBWBWB
WWBWWB
BBWBBW
BWBWWB
WBBWBW
BWWBBB
0
W
B
W
B
W
B
W
B
B
W
15
WBWB
BWBW
WBWB
BWBB
WBWW
BBWB
WWBW
WBWB
BWWB
1
BW
WB
BB
4
BWBBWWB
WBWWBBW
20
WBWBWWWBW
BWBWBBWWW
WBWBWWBWW
WWBWWBWWW
WBBWBWBBW
BWBBBWWWW
WBWBWBWBW
WWWWBWWWW
BBWWWWWWW
28
WWBBWWWBWB
WBWBWBWWBW
BWBWBWBWBW
WBBWBW...

result:

ok ok (10000 test cases)

Test #4:

score: 0
Accepted
time: 45ms
memory: 3696kb

input:

10000
7 7
?B??BBW
????BB?
WBBB??B
WW?B???
?B??BBB
BBWB??B
B???BB?
10 6
W?WW??
W??W??
?WWWW?
?WW?WW
WW??W?
W?????
W?WW??
WW???W
WWW??W
?W??W?
2 6
?B??W?
B???BB
1 8
??BWB?W?
5 2
WB
W?
B?
BB
?W
7 5
W????
?WW??
???W?
WWWW?
W?W?W
?W?B?
W?WWB
8 5
B?WBW
B??WW
WWW?B
WBBWB
BW?WW
B?W?B
??WWB
BBW?B
10 4
WWWW
?...

output:

15
WBWBBBW
BWBWBBW
WBBBWWB
WWWBWBW
WBBWBBB
BBWBWWB
BWBWBBW
13
WBWWWB
WWBWBW
WWWWWB
BWWWWW
WWWBWB
WWBWBW
WBWWWB
WWBWBW
WWWBWW
BWBWWW
4
WBWBWB
BWBWBB
0
WBBWBBWB
1
WB
WB
BW
BB
WW
12
WBBWB
BWWBW
WBBWB
WWWWB
WBWBW
BWBBW
WBWWB
7
BBWBW
BWBWW
WWWBB
WBBWB
BWBWW
BWWBB
WBWWB
BBWWB
9
WWWW
BBWB
WWBW
WBWB
BWWB
BW...

result:

ok ok (10000 test cases)

Test #5:

score: 0
Accepted
time: 43ms
memory: 5600kb

input:

10000
1 1
?
7 9
W?WB????B
?WB??B??W
BBB?W?WB?
WWW??WWW?
WW?B??W?W
?BWW??WWW
B?WW?W?WB
3 7
??BBBB?
BW?WW??
B??B?BW
1 6
?B?WWB
7 1
W
W
W
B
?
W
?
8 8
WW??W?B?
WWW?????
BB??WWWW
?W???WBW
BBW???WB
BWBWBWW?
?W?WW??B
BB?????W
10 8
WWW?W?BW
WB?W?WBW
WW?W?WBW
WWWW?WW?
WBWB?B?W
BW?BW??B
??WWBWWB
W?BW?BWW
W?W?...

output:

0
W
18
WBWBWWBWB
BWBWBBWBW
BBBBWBWBW
WWWWBWWWB
WWBBWBWBW
WBWWBWWWW
BWWWWWWWB
5
WBBBBBW
BWBWWWB
BBWBWBW
0
WBWWWB
0
W
W
W
B
W
W
W
23
WWWBWBBW
WWWWBWWB
BBWBWWWW
BWBWBWBW
BBWBWBWB
BWBWBWWW
WWBWWBWB
BBWBBWBW
19
WWWBWBBW
WBBWBWBW
WWWWWWBW
WWWWBWWB
WBWBWBBW
BWBBWBWB
WBWWBWWB
WWBWBBWW
WBWBWWWB
WWWWBBBB
0
WB...

result:

ok ok (10000 test cases)

Test #6:

score: 0
Accepted
time: 45ms
memory: 3644kb

input:

10000
9 1
W
B
?
B
W
W
?
W
B
1 10
W??????BWB
5 8
??W??WB?
?B?WWB?W
??????B?
BB??BBBB
WB??BBB?
6 2
?B
??
WB
?B
WW
W?
1 10
WW??BW?BW?
4 3
BW?
???
B?B
??W
10 10
WW?BBW?BW?
WW?BW?????
?WWBW?WB?W
???B?BBBBB
??BBBB?BBW
?WW??W?WBB
W??BB?WBBB
BBWBW?WBBW
?W????BWB?
??BW??WBWB
1 6
??B???
6 5
WBB?W
?WWWW
WWWW?
...

output:

0
W
B
W
B
W
W
W
W
B
0
WBWBWBWBWB
10
BWWBBWBB
WBBWWBWW
BWWBWWBB
BBBWBBBB
WBWBBBBB
2
WB
BW
WB
BB
WW
WW
0
WWWBBWWBWB
6
BWB
WBW
BWB
WBW
26
WWWBBWWBWB
WWBBWWBWBW
BWWBWBWBWW
WBWBBBBBBB
BWBBBBWBBW
BWWWBWBWBB
WBWBBBWBBB
BBWBWBWBBW
BWBWBWBWBW
WBBWWBWBWB
0
WBBBWB
4
WBBBW
BWWWW
WWWWB
WWWBW
WWBBW
WBWWB
0
B
B
B
...

result:

ok ok (10000 test cases)

Test #7:

score: 0
Accepted
time: 163ms
memory: 5880kb

input:

10000
10 10
?W?WW?W??W
?BWBW?BBWW
?BB?WWW?W?
W?B?WWWWWW
?BWW?WWW?W
BWWWWWWW?W
WBBWW??B??
W??WW?W??W
WWWW?WW?W?
?W?BWW?WW?
10 10
WB?WBBWWWB
?WWWW?WB??
?B?BWW?BW?
WBWBW??W?W
B?WB?WBWWB
WWBWBBWW??
??WBBWBWBW
WWB??WWBWB
B?BWWWWBWW
WW?WWWBWWB
10 10
??W????WW?
?WW?W???W?
??W??WW?W?
WW??WW?WW?
?W??WW?WW?
?...

output:

20
BWBWWBWWBW
WBWBWWBBWW
WBBWWWWBWB
WWBBWWWWWW
WBWWBWWWWW
BWWWWWWWBW
WBBWWWBBWB
WWBWWBWWBW
WWWWBWWBWB
BWBBWWBWWW
24
WBWWBBWWWB
BWWWWBWBBW
WBWBWWBBWB
WBWBWBWWBW
BBWBWWBWWB
WWBWBBWWBW
WBWBBWBWBW
WWBWBWWBWB
BBBWWWWBWW
WWBWWWBWWB
33
WBWWBWBWWB
BWWBWBWBWW
WBWBBWWBWB
WWBWWWBWWW
WWWBWWWWWB
BWWWBWWWBW
BWBBW...

result:

ok ok (10000 test cases)

Test #8:

score: 0
Accepted
time: 161ms
memory: 5676kb

input:

10000
10 10
?BBBBWBBB?
??W???WB??
BB?W???BB?
?B???BBB??
W??BB?WBBB
?B?B???W?W
?????BB???
?BW???B???
???BBB??BB
BWBBBBBBB?
10 10
BWW?WWB?BW
??B?WBBBWB
B??BB??BWB
BW?BWB???W
?WB?WWW?W?
B??B??W?BB
?WBB?WBB?B
BB??BBWBW?
WB??WBB?BW
?B???B?W??
10 10
??WWWB??BB
?WW???WBWW
???W??W?WW
?W?B?W?W??
WWB?WBB??W
B...

output:

34
WBBBBWBBBW
BWWBWBWBWB
BBBWBWBBBW
BBWBWBBBWB
WWBBBWWBBB
WBWBWBBWBW
BWBWBBBBWB
WBWBWWBWBW
WBWBBBWBBB
BWBBBBBBBW
31
BWWBWWBWBW
WBBWWBBBWB
BWWBBWWBWB
BWWBWBBWBW
WWBWWWWBWB
BBWBBBWWBB
WWBBWWBBWB
BBBWBBWBWB
WBWBWBBWBW
BBBWBBBWWB
33
WBWWWBBWBB
BWWBBWWBWW
WBBWWBWBWW
BWWBBWBWBW
WWBWWBBBWW
BBWBWBWWWW
WWBWB...

result:

ok ok (10000 test cases)

Test #9:

score: 0
Accepted
time: 29ms
memory: 3676kb

input:

10000
1 100
WWW?BWB?BB?BBW?BWBB?W??B?B?BWWBWB?WWB??BBBBB??BBBBB?BBBWBWWW?B?BBBWW??BBBW???B???W??W??BW?B?B?W??WB?
1 100
?WBW?WB?BBBB?BWBWB???WWB?BBB?BBW?B?B??W?B??BBW??WBBW???WW?BBBB?WWB?WBB???WBBB?BBW?W??BW?B??BBBBBBBWB
1 100
W?????BBB?BB?BB?????BWWWB?B???BB??????B??BWW???B??B?B???????BBB??B?BBB???B...

output:

0
WWWBBWBBBBWBBWWBWBBBWBWBWBWBWWBWBBWWBBWBBBBBWBBBBBBBBBBWBWWWWBWBBBWWWBBBBWWBWBWBWWWBWBWBWBBBBBWBWWBB
0
WWBWWWBBBBBBWBWBWBWBWWWBWBBBWBBWWBWBWBWBBBWBBWWBWBBWWBWWWBBBBBWWWBWWBBWBWWBBBBBBWBWBWBWBBBWBBBBBBBWB
0
WBWBWBBBBBBBWBBBWBWBBWWWBBBBWBBBWBWBWBBBWBWWWBWBWBBBBBWBWBWBBBBBWBWBBBWBWBBBWWWBWBWWWBWBWBWB...

result:

ok ok (10000 test cases)

Test #10:

score: 0
Accepted
time: 47ms
memory: 5604kb

input:

10000
100 1
W
B
B
?
B
B
B
?
B
B
B
B
W
B
B
B
?
?
B
?
B
B
?
W
B
W
?
B
?
B
W
W
?
W
?
B
?
B
B
?
W
W
B
?
B
B
?
?
W
W
B
B
?
B
B
?
B
?
?
?
W
B
W
B
?
B
W
?
?
B
B
B
B
?
B
?
W
B
B
W
B
?
W
B
B
?
B
B
?
B
?
W
?
B
?
B
B
?
B
W
100 1
?
W
?
W
?
W
W
W
W
W
B
W
?
?
B
B
?
W
?
B
W
W
W
W
?
?
?
?
W
W
B
W
W
W
W
W
?
W
W
W
?
...

output:

0
W
B
B
B
B
B
B
B
B
B
B
B
W
B
B
B
W
B
B
B
B
B
W
W
B
W
W
B
W
B
W
W
W
W
W
B
W
B
B
B
W
W
B
B
B
B
W
B
W
W
B
B
W
B
B
B
B
B
W
B
W
B
W
B
W
B
W
B
W
B
B
B
B
B
B
B
W
B
B
W
B
B
W
B
B
B
B
B
W
B
W
W
W
B
W
B
B
B
B
W
0
W
W
W
W
W
W
W
W
W
W
B
W
W
B
B
B
W
W
W
B
W
W
W
W
W
B
W
B
W
W
B
W
W
W
W
W
W
W
W
W
W
W
B
W
W
B
W
B
...

result:

ok ok (10000 test cases)

Test #11:

score: 0
Accepted
time: 269ms
memory: 5720kb

input:

1000
100 10
WWWB?WWW?W
W????????W
WB?W??WW?W
WBB?WWW??B
?WWWW?WW?W
?WWWW?W?WB
?B??W?W???
WW?W?BWWW?
WW?B?W?W?W
????WW??W?
BWB??WWWW?
W??W??WW??
W?WBB??WWW
?WWBBWW?WW
?WBWW?B???
???WWW???W
??WW?WWW??
????W?BW?W
???W?W?W?W
?WW?WW?WB?
BW??WW?WW?
WB?WWWWW?W
??BWW??W?W
W??B?WWWW?
WWW?W??WWW
BBBW??W?W?
??...

output:

335
WWWBWWWWBW
WWBWBWBBWW
WBWWWBWWBW
WBBWWWWBWB
BWWWWBWWBW
BWWWWWWBWB
WBWBWBWWBW
WWBWBBWWWB
WWWBWWBWBW
WBWBWWWBWB
BWBWBWWWWB
WWBWWBWWBW
WBWBBWBWWW
BWWBBWWBWW
BWBWWBBWWB
WBWWWWWBBW
BWWWBWWWWB
WBWBWBBWBW
BWBWBWWWWW
BWWBWWBWBW
BWBWWWWWWB
WBWWWWWWBW
BWBWWBWWBW
WBWBBWWWWB
WWWBWBBWWW
BBBWBWWBWB
WBWBWWBWBW...

result:

ok ok (1000 test cases)

Test #12:

score: 0
Accepted
time: 266ms
memory: 5716kb

input:

1000
10 100
BBWB??W??B?BWB?BBB??WWWW?B???WBB??WW???WWBW?B??W??BW?BWBBBW?BWBW?WBW?B?WWB??B?B?BBWWWBBBBW?BB???B?WB
??????WWWBWBBB??W??WW??BWBW??W??????WWWB?B??B?????W?B?????W??BBBBWBW??BWWWB???WBWB?BB?WW?B????W?WWB?
WB?BBBW?B??BB?WWW?B??WBB??W?BBW??BB??BB???BB??B??WB??W?B?B?WWWWW?BB??W?W?WBB??B?WWBBB?...

output:

330
BBWBWBWBWBWBWBWBBBWBWWWWBBBWBWBBWBWWBBBWWBWBBWBWBWBWWBWBBBWWBWBWWWBWWBWWWBWBBWBWBBWWWBBBBWWBBWBWBBWB
BWBWBWWWWBWBBBBWWWBWWBWBWBWBWWBWBWBBWWWBWBBWBBWBWBWBBWBWBWWBWBBBBWBWBWBWWWBWWBWBWBWBBWWWWBBWBBWBWWBW
WBWBBBWBBWBBBBWWWBBWBWBBBWWWBBWBWBBBWBBWBWBBWWBWBWBWBWWBWBBWWWWWWBBBWWWWWWBBBWBBWWBBBBBWWBWBWW...

result:

ok ok (1000 test cases)

Test #13:

score: -100
Wrong Answer
time: 645ms
memory: 7984kb

input:

100
100 100
?WW?WW??WWW??BBW??WW??W???W?W?W?????W?W?BWBW??WBW????W??BB??BW?W??W????WBW?????WWB??BWW????W??W??WW?
B?????WW???B?BWWWB?WWW?WB?BB??????W??W?BWWW?BB??WWBWB?WWW????WW?W??BB?BBWB?W????W???BWWW??BBWWW???BW
W?BW??????WBB?B????W?BBW????BBW????W?W?????B?B??WW??????WWWWW?W??WW?WBW??W??W????BWWB?...

output:

4352
WWWBWWBBWWWWBBBWBWWWWBWBWBWBWBWWBWBWWBWWBWBWWBWBWBWBWWBBBBWBBWBWBWWBWBWWBWWBWBWWWBWBBWWBWBWWBBWWBWWB
BBWBWBWWBWBBWBWWWBWWWWBWBWBBBWBBWBWBBWBBWWWWBBBWWWBWBBWWWWBWBWWBWBBBBWBBWBBWBWBWWWBWBWWWBWBBWWWBWBBW
WWBWBWBBWBWBBWBWBWBWWBBWWBWWBBWWBWBWWWWBWBWBWBWBWWWBWWBBWWWWWBWWBWWBWBWWBWWBWBWBWBWWBBWBBBWBW...

result:

wrong output format Extra information in the output file (test case 100)