QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#276297#5071. Check Pattern is GoodrageOfThunderTL 6413ms4828kbC++143.7kb2023-12-05 19:29:372023-12-05 19:29:38

Judging History

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

  • [2023-12-05 19:29:38]
  • 评测
  • 测评结果:TL
  • 用时:6413ms
  • 内存:4828kb
  • [2023-12-05 19:29:37]
  • 提交

answer

// MagicDark
#include <bits/stdc++.h>
#define debug cerr << "[" << __LINE__ << "] "
#define SZ(x) (int) x.size() - 1
#define all(x) x.begin(), x.end()
#define ms(x, y) memset(x, y, sizeof x)
#define F(i, x, y) for (int i = (x); i <= (y); i++)
#define DF(i, x, y) for (int i = (x); i >= (y); i--)
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
template <typename T> inline void chkmax(T &x, T y) {x = max(x, y);}
template <typename T> inline void chkmin(T &x, T y) {x = min(x, y);}
template <typename T> inline void read(T &x) {
	x = 0; int f = 1; char c = getchar();
	for (; !isdigit(c); c = getchar()) if (c == '-') f = -f;
	for (; isdigit(c); c = getchar()) x = (x << 1) + (x << 3) + (c ^ 48);
	x *= f;
}
const int NN = 110;
int n, m;
char ch[NN][NN];
const int N = 3e4 + 10;
struct edge {
    int to, flow;
    unsigned pos;
};
vector <edge> a[N];
void add(int x, int y, int flow) {
    a[x].push_back((edge) { y, flow, (unsigned) a[y].size() });
    a[y].push_back((edge) { x, 0, (unsigned) a[x].size() - 1 });
}
int dep[N];
unsigned cur[N];
queue <int> q;
bool bfs(int s, int t) {
    F(i, s, t) dep[i] = 0;
    dep[s] = 1;
    q.push(s);
    while (q.size()) {
        int x = q.front(); q.pop();
        for (edge i: a[x])
            if (i.flow && !dep[i.to]) {
                dep[i.to] = dep[x] + 1;
                q.push(i.to);
            }
    }
    return dep[t];
}
int dfs(int x, int tt, int lim) {
    if (x == tt) return lim;
    int ans = 0, t;
    for (unsigned &i = cur[x]; i < a[x].size(); ++i)
        if (a[x][i].flow && dep[a[x][i].to] == dep[x] + 1 && (t = dfs(a[x][i].to, tt, min(lim, a[x][i].flow)))) {
            a[x][i].flow -= t, a[a[x][i].to][a[x][i].pos].flow += t;
            lim -= t, ans += t;
            if (!lim) return ans;
        }
    return ans;
}
ll dinic(int s, int t) {
    ll ans = 0;
    while (bfs(s, t)) {
        F(i, s, t) cur[i] = 0;
        ans += dfs(s, t, 1e9);
    } return ans;
}
ll ans;
int id(int x, int y) {
	return (x - 1) * m + y;
}
void zhk() {
	cin >> n >> m;
	int s = 0, t = n * m * 3 + 1;
	F(i, s, t) a[i].clear();
	ans = 0;
	F(i, 1, n)
		F(j, 1, m) {
			cin >> ch[i][j];
			if ((i + j) & 1) {
				if (ch[i][j] == 'W') ch[i][j] = 'B';
				else if (ch[i][j] == 'B') ch[i][j] = 'W';
			}
			// if (ch[i][j] == 'W') {
			// 	add(s, id(i, j), 1e9);
			// }
			// if (ch[i][j] == 'B') {
			// 	add(id(i, j), t, 1e9);
			// }
			if (ch[i][j] == '?') {
				add(s, id(i, j), 1e9);
				add(id(i, j), t, 1e9);
				ans += 1e9;
			}
		}
	F(i, 1, n - 1)
		F(j, 1, m - 1) {
			if (ch[i][j] != 'B' && ch[i + 1][j] != 'B' && ch[i][j + 1] != 'B' && ch[i + 1][j + 1] != 'B') {
				ans++;
				add(s, n * m + id(i, j), 1);
				add(n * m + id(i, j), id(i, j), 1e9);
				add(n * m + id(i, j), id(i, j + 1), 1e9);
				add(n * m + id(i, j), id(i + 1, j), 1e9);
				add(n * m + id(i, j), id(i + 1, j + 1), 1e9);
			}
			if (ch[i][j] != 'W' && ch[i + 1][j] != 'W' && ch[i][j + 1] != 'W' && ch[i + 1][j + 1] != 'W') {
				ans++;
				add(id(i, j), n * m * 2 + id(i, j), 1e9);
				add(id(i, j + 1), n * m * 2 + id(i, j), 1e9);
				add(id(i + 1, j), n * m * 2 + id(i, j), 1e9);
				add(id(i + 1, j + 1), n * m * 2 + id(i, j), 1e9);
				add(n * m * 2 + id(i, j), t, 1);
			}
		}
	cout << ans - dinic(s, t) << '\n';
	F(i, 1, n) {
		F(j, 1, m) {
			char ch;
			if (::ch[i][j] == '?') {
				if (dep[id(i, j)]) ch = 'W';
				else ch = 'B';
			} else ch = ::ch[i][j];
			if ((i + j) & 1) {
				if (ch == 'W') ch = 'B';
				else ch = 'W';
			}
			cout << ch;
		}
		cout << '\n';
	}
}
signed main() {
	cin.tie(0) -> sync_with_stdio(0);
	int _ = 1;
	cin >> _;
	while (_--) zhk();
	return 0;
}
/* why?
*/

详细

Test #1:

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

input:

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

output:

1
BW
WB
1
BWB
WBB
BBW
4
BWB
WBW
BWB

result:

ok ok (3 test cases)

Test #2:

score: 0
Accepted
time: 172ms
memory: 4312kb

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
WB
9
WBBBWWB
WBWBWWW
BWBBWWB
WBWWBWW
BBWBBWB
WWBBWWW
BWBWBWB
WWWWBBW
BBWBBWW
BBWBWBB
6
BWWBWWB
WBBWWWB
BWWBBBW
BBBWBBB
0
B
W
B
B
B
W
W
W
B
W
15
BWWW
WBWB
WWWB
WBBW
BWWB
BWBW
WBWB
BWBW
WBWW
BWBW
8
WBW
WWB
WBW
BWB
WBW
WBW
BWB
WWW
0
W
B
B
W
1
BBWB
WWBB
3
BW...

result:

ok ok (10000 test cases)

Test #3:

score: 0
Accepted
time: 168ms
memory: 4284kb

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
BBWWBW
WWBBWB
BWBWBW
BBWBWB
WWBWWB
BBWBBW
BWBWWB
WBBWBW
BWWBBW
0
W
W
B
W
B
W
B
W
B
W
15
WBWB
BWBW
WBWB
BWBB
WBWW
WBWB
WWBW
WBWB
BWWW
1
BW
WB
BB
4
BWBBWWB
WBWWBBW
20
WBWBWWWWW
BWBWBBWWW
WBWBBWBWW
WWBWWBWWW
WBBWBWBWW
BWBBWWWWW
WBWBWBWWW
WWWWBWWWW
BWWWWWWWB
28
WWBBWWWWWB
WBWBWBWBBW
BWBWBWBWBW
WBWWBW...

result:

ok ok (10000 test cases)

Test #4:

score: 0
Accepted
time: 166ms
memory: 4332kb

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
WBBBBWB
WWWBWBW
BBBWBBB
BBWBWWB
BWBWBBW
13
WWWWWB
WBWWBW
BWWWWB
WWWBWW
WWBWWW
WBWBWB
WBWWBW
WWBBWW
WWWWBW
WWWBWB
4
WBWBWW
BWBWBB
0
BWBWBWWW
1
WB
WB
BW
BB
BW
12
WBBWB
BWWBW
WBBWB
WWWWB
WBWBW
BWBBW
WBWWB
7
BBWBW
BWBWW
WWWBB
WBBWB
BWBWW
BBWBB
BWWWB
BBWBB
9
WWWW
WBWB
WWBW
WBWB
BWWB
BW...

result:

ok ok (10000 test cases)

Test #5:

score: 0
Accepted
time: 168ms
memory: 4324kb

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
B
18
WBWBWWBWB
BWBWBBWBW
BBBBWBWBW
WWWWBWWWB
WWBBWBWBW
WBWWWBWWW
BWWWBWBWB
5
WBBBBBW
BWBWWWB
BBWBBBW
0
BBBWWB
0
W
W
W
B
B
W
B
23
WWBBWWBW
WWWWBBWB
BBWBWWWW
WWBWBWBW
BBWBWBWB
BWBWBWWB
BWBWWBWB
BBWBBWBW
19
WWWBWBBW
WBWWBWBW
WWBWBWBW
WWWWBWWB
WBWBWBBW
BWBBWBWB
WBWWBWWB
WWBWWBWW
WBWBWWWW
WWWWBBWB
0
WB...

result:

ok ok (10000 test cases)

Test #6:

score: 0
Accepted
time: 177ms
memory: 4260kb

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
B
B
W
W
B
W
B
0
WWBWBWBBWB
10
BWWWBWBW
WBWWWBWW
BWBWBWBW
BBWBBBBB
WBBWBBBW
2
WB
BW
WB
WB
WW
WB
0
WWBWBWBBWW
6
BWB
WBW
BWB
WBW
26
WWBBBWWBWB
WWWBWBBWBW
BWWBWWWBWW
WBWBWBBBBB
BWBBBBWBBW
WWWBWWBWBB
WWBBBWWBBB
BBWBWBWBBW
BWBWBWBWBW
WBBWWBWBWB
0
BWBWBW
4
WBBWW
BWWWW
WWWWB
WWWBW
WWBBW
WBWWB
0
B
B
B
...

result:

ok ok (10000 test cases)

Test #7:

score: 0
Accepted
time: 845ms
memory: 4292kb

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
BBBWWWWWWW
WWBBWWWWWW
WBWWBWWWBW
BWWWWWWWBW
WBBWWWBBWB
WBWWWBWWBW
WWWWBWWBWB
WWWBWWBWWB
24
WBBWBBWWWB
BWWWWBWBBW
WBBBWWBBWB
WBWBWBWWBW
BWWBBWBWWB
WWBWBBWWWB
BBWBBWBWBW
WWBWWWWBWB
BWBWWWWBWW
WWWWWWBWWB
33
WBWWBWBWWW
BWWBWBWBWB
WBWWBWWBWW
WWBBWWBWWB
BWBBWWBWWB
WWWWBWWWBW
BWBBW...

result:

ok ok (10000 test cases)

Test #8:

score: 0
Accepted
time: 837ms
memory: 4212kb

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
WBWBWBBBWB
WWBBBWWBBB
WBWBWBBWBW
BWBWBBBBWB
WBWBWWBWBW
BWBBBBWBBB
BWBBBBBBBB
31
BWWBWWBWBW
WBBWWBBBWB
BWWBBWWBWB
BWWBWBBWBW
BWBWWWWBWB
BBWBWBWWBB
BWBBBWBBWB
BBWWBBWBWB
WBWBWBBWBW
WBBWBBWWWB
33
WBWWWBBWBB
BWWBBWWBWW
WBBWWBWBWW
BWWBBWBWBB
WWBWWBBBWW
BBWBWBWWWW
BWBWB...

result:

ok ok (10000 test cases)

Test #9:

score: 0
Accepted
time: 240ms
memory: 4172kb

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
WWWWBWBWBBBBBWBBWBBWWWBBBBBBWWBWBWWWBWBBBBBBBWBBBBBWBBBWBWWWBBBBBBWWBWBBBWBWBBBWBWBWWWBBWWBWBWWWBWBW
0
BWBWBWBWBBBBBBWBWBBWBWWBBBBBBBBWBBBBBWWWBWBBBWBWWBBWBWBWWWBBBBBWWBBWBBBWBWBBBWBBWWWWBBWWBWBBBBBBBBWB
0
WWBWBWBBBWBBBBBWBWBWBWWWBWBWBWBBBWBWBWBWBBWWBWBBBWBWBWBWBWBWBBBWBBBBBBBWBBBWBWBWWWBWBWWWBBBW...

result:

ok ok (10000 test cases)

Test #10:

score: 0
Accepted
time: 256ms
memory: 4256kb

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
W
B
B
B
W
B
B
B
B
W
B
B
B
B
W
B
W
B
B
B
W
B
W
B
B
B
B
W
W
B
W
B
B
B
B
B
W
W
W
B
W
B
B
B
W
W
W
B
B
B
B
B
W
B
W
B
W
W
B
W
B
B
B
W
W
B
B
B
B
B
W
B
W
W
B
B
W
B
W
W
B
B
W
B
B
B
B
B
W
B
B
B
B
B
W
B
W
0
B
W
B
W
B
W
W
W
W
W
B
W
B
W
B
B
B
W
B
B
W
W
W
W
B
W
B
W
W
W
B
W
W
W
W
W
B
W
W
W
B
W
B
W
B
B
W
B
...

result:

ok ok (10000 test cases)

Test #11:

score: 0
Accepted
time: 6413ms
memory: 4828kb

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
WWWBBWWWBW
WBWBWBWBWW
WBBWBWWWBW
WBBBWWWBWB
BWWWWWWWBW
BWWWWBWBWB
WBWBWWWWBW
WWBWBBWWWB
WWBBWWBWBW
WBWBWWWBWB
BWBWBWWWWB
WBWWWBWWBW
WBWBBWBWWW
BWWBBWWBWW
BWBWWBBWBW
WBWWWWWBWW
BWWWBWWWBW
WBWBWBBWWW
BWBWBWBWBW
WWWBWWWWBW
BWBWWWBWWB
WBWWWWWWBW
BWBWWBBWBW
WBWBBWWWWB
WWWBWWBWWW
BBBWBBWBWB
WBWBWWBWBW...

result:

ok ok (1000 test cases)

Test #12:

score: 0
Accepted
time: 6167ms
memory: 4692kb

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
BBWBWBWWBBBBWBWBBBWBWWWWBBBWBWBBWBWWBWBWWBWWBWBWBWBWWBWBBBWWBWBWBWBWWBWWWBWWBWBWBBWWWBBBBWWBBWBWBBWB
BWBWBWWWWBWBBBBWWWBWWBWBWBWBWWBWBWBBWWWBWBWWBBWBWBWBBWBWBWWBWBBBBWBWBWBWWWBBWBWBWBWBBBWWWBBWWBWBWWBW
WBWBBBWWBWBBBWWWWBBWBWBBBWWWBBWBWBBBWBBWBWBBWWBWBWBWBWBBWBBWWWWWBBBBWWBWBWBBBWBWWWBBBWBWWBWBWW...

result:

ok ok (1000 test cases)

Test #13:

score: -100
Time Limit Exceeded

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
BWWWWWBBWWWWBBBWBWWWBBWBWBWWWBWWBWBWWBWWBWBWBWWBWBWBWWBWBBWBBWBWBWWWWBWWBWWBWBWWWBWBBWWBWBWWBWWWBWWB
BBWBWBWWBWBBWBWWWBWWWWBWBWBBWWBBWBWBWWBBWWWBBBWBWWBWBBWWWWBWBWWBWBWBBWBBWBBWBWBWWWBWBWWWBWBBWWWBWBBW
WWBWBWBWWBWBBWBWBWBWBBBWWBWWBBWWBWBWBWWBWBWBWBBWWWBWBWBWWWWWWBWWBWWBWBWWBWWBWBWBWBWWBWWBBBWWW...

result: