题解 ARC171A【No Attacking】

先考虑没有车时怎么做,显然在所有奇数行放满兵是最优的。

每个车必须独自占据一行一列,放在哪些列是不重要的,但是要优先放在偶数行,这样可以尽量多地放兵。

按以上策略放完车之后判断卒是否放得下即可。

cin >> n >> a >> b;
int k = n - max(n / 2, a);
if(n >= a && b <= (n - a) * k) cout << "Yes" << endl;
else cout << "No" << endl;
posted @ 2024-02-05 15:59  rui_er  阅读(28)  评论(0编辑  收藏  举报