AT_arc171_a 题解
只切了这道题,刚开始表现分直接
题意简述
有一个
是否存在一种让它们互不攻击的方案。
思路
显然每行每列最多只能放一个车,那么如果
否则放完
考虑如何最大化能使用的行数,不能让两个行挨在一起,所以让车隔一行放一个。
当
最后看还能放的格子数和卒的数量的大小关系即可。
Code
if (a > n || a == n && b)
puts("No");
int col = n - a, row = col;
if (a < n / 2)
row = a + ((n - a) * 2 + 1) / 2;
if (col * row < b)
puts("No");
else
puts("Yes");