P2484 [SDOI2011]打地鼠 题解
文章目录
题目
分析
锤子每次只能将每个洞里打掉一只地鼠,所以对于每次击打,都会打掉 r × c r\times c r×c 只地鼠。而每次击打的范围内的每个洞里必须都要有地鼠,所以地鼠的总数必须被 r × c r\times c r×c 整除。
因为每只地鼠都需要被干掉,所以如果当前方案成立,总可以通过不断在地图左上角寻找有地鼠的洞,再以这个洞为锤子击打的范围的左上角进行击打来打完所有地鼠。
而如果在打地鼠的时候发现击打范围内有已经没有地鼠的洞或者会打到地图外面的话,当前方案就不成立。
思路
由于地图只是个 100 × 100 100\times 100 100×100 的矩形,所以我们完全可以枚举 r r r 和 c c c,只要锤子覆盖的区域大小即 r × c r\times c r×c 能整除地图中的地鼠总数就进行尝试。
根据上文的分析,我们只需要在整个地图左上角找到一个还剩的有地鼠的洞,设这个洞的坐标为 ( x , y ) (x,y) (x,y),然后进行以下操作:
- 判断 ( x + r − 1 , y + c − 1 ) (x+r-1,y+c-1) (x+r−1,y+c−1) 是否在地图外面。在的话说明这个锤子不满足题意,结束,否则进行下一步。
- 判断 ( x ,