P2484 [SDOI2011]打地鼠 题解

P2484 [SDOI2011]打地鼠 题解

题目

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),然后进行以下操作:

  1. 判断 ( x + r − 1 , y + c − 1 ) (x+r-1,y+c-1) (x+r1,y+c1) 是否在地图外面。在的话说明这个锤子不满足题意,结束,否则进行下一步。
  2. 判断 ( x ,
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值