CF1333A [Little Artem]

发布时间 2023-10-11 22:23:45作者: yhx0322

Problem

题目简述

给你一个 \(n \times m\) 的方格,构造一个方案,使得方案中 \(B = W + 1\)

\(B\):相邻的格子有至少一个白色格子的黑色格子的个数。

\(W\):相邻的格子有至少一个黑色格子的白色格子的个数。

思路

分奇偶讨论。

  • \(n \times m\) 是偶数:构造一张黑、白相间的矩阵,左上角填为白色,黑色方块的数量相同。

  • \(n \times m\) 是奇数:构造一张黑、白相间的矩阵,左上角填为黑色,黑白快数量相同。

代码

#include <bits/stdc++.h>

using namespace std;

int T, n, m;

int main() {
	
	scanf("%d", &T);
	while (T--) {
		scanf("%d%d", &n, &m);
		if((n & 1) && (m & 1)) {
			for(int i = 1; i <= n; i++) {
				for(int j = 1; j <= m; j++) {
					if((i + j) & 1) printf("%c", 'W');
					else printf("%c", 'B');
				}
				puts("");
			}
		}
		else {
			printf("%c", 'B');
			for(int i = 2; i <= m; i++) {
				if((i + 1) & 1) printf("%c", 'B');
				else printf("%c", 'W');
			}
			puts("");
			for(int i = 2; i <= n; i++) {
				for(int j = 1; j <= m; j++) {
					if((i + j) & 1) printf("%c", 'B');
					else printf("%c", 'W');
				}
				puts("");
			}
		}
	}
	return 0;
}