题解:CF333B Chips
题目大意:
有一个 $n \times n$ 的棋盘,$m$ 个格子是障碍物,然后移动芯片使它们返回到初始对边位置,不能经过障碍物、重叠或交换位置。问最多可以放置多少个芯片完成游戏。
思路:
本题直接按题意模拟即可:
-
使用桶记录障碍,$a_i$ 代表第 $i$ 行的芯片个数,同理 $b_i$ 代表第 $i$ 列的芯片个数。
-
如果第 $i$ 行或第 $j$ 没有芯片,$cnt+1$。
-
如果相遇,就是 $n$ 为奇数且中间行且列有值,$cnt-1$。
下面是样例 $3$ 的解释:
| 列1 | 列2 | 列3 | 列4 | |
|---|---|---|---|---|
| 行1 | 无芯片 | 可放芯片 | 可放芯片 | 无芯片 |
| 行2 | 放芯片 | ______ | ______ | 放芯片 |
| 行3 | 障碍物 | 障碍物 | 障碍物 | 可放芯片 |
| 行4 | 无芯片 | 可放芯片 | 可放芯片 | 无芯片 |
行2的两个芯片可以连通,$cnt=1$。
没有相遇情况,输出 $1$。
上代码:
1 |
|
括号的意思:如果括号里面的的表达式为 $true$ ,返回 $1$ ,否则返回 $0$。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 heyZzz's OI Blog!