CF493D Vasya and Chess 题解
myster1ous · · 题解
题目传送门
题目大意
在
解题思路
结论
若
证明
case 1: n 为奇数
| 白 | 兵 | 兵 | 兵 | 黑 |
|---|---|---|---|---|
| 兵 | 兵 | 兵 | 兵 | 兵 |
| 兵 | 兵 | 兵 | 兵 | 兵 |
| 兵 | 兵 | 兵 | 兵 | 兵 |
| 兵 | 兵 | 兵 | 兵 | 兵 |
无论白怎么走,黑都可以模仿白,比如白走到
| 白 | 兵 | 兵 | 黑 | |
|---|---|---|---|---|
| 兵 | 兵 | 兵 | 兵 | 兵 |
| 兵 | 兵 | 兵 | 兵 | 兵 |
| 兵 | 兵 | 兵 | 兵 | 兵 |
| 兵 | 兵 | 兵 | 兵 | 兵 |
| 白 | 兵 | 黑 | ||
|---|---|---|---|---|
| 兵 | 兵 | 兵 | 兵 | 兵 |
| 兵 | 兵 | 兵 | 兵 | 兵 |
| 兵 | 兵 | 兵 | 兵 | 兵 |
| 兵 | 兵 | 兵 | 兵 | 兵 |
如果白走到了最中间的那一列(即第
| 兵 | ||||
|---|---|---|---|---|
| 兵 | 兵 | 兵 | ||
| 兵 | 兵 | 兵 | ||
| 白 | 兵 | 黑 | ||
| 兵 | 兵 | 兵 | 兵 | 兵 |
| 兵 | ||||
|---|---|---|---|---|
| 兵 | 兵 | 兵 | ||
| 兵 | 兵 | 兵 | ||
| 白 | 黑 | |||
| 兵 | 兵 | 兵 | 兵 | 兵 |
case 2: n 为偶数
这个很简单,只要白先走到
| 白 | 兵 | 兵 | 兵 | 黑 | |
|---|---|---|---|---|---|
| 兵 | 兵 | 兵 | 兵 | 兵 | 兵 |
| 兵 | 兵 | 兵 | 兵 | 兵 | 兵 |
| 兵 | 兵 | 兵 | 兵 | 兵 | 兵 |
| 兵 | 兵 | 兵 | 兵 | 兵 | 兵 |
| 兵 | 兵 | 兵 | 兵 | 兵 | 兵 |
所以当
代码
说了这么多了,其实核心代码就一行。
cout << (n & 1 ? "black" : "white\n1 2");
AC 代码
#include <iostream>
using namespace std;
int n;
int main() {
cin >> n;
cout << (n & 1 ? "black" : "white\n1 2"); // 核心判断
return 0;
}