算法 - 暴力枚举

枚举的基本条件:

  (1)时间条件:

首先是时间条件。一般来说主流的OJ当中,1000ms的时间限制下可以运行操作数为10^7以内的运算(通常10^6以内较为保险),所以在采用枚举方法之前最好看一下数据范围,确保整个程序的执行操作数不会超过10^6-10^7这个量级,如果超过了就尝试更换枚举的维度或者使用其他算法吧。

  (2)编程上的实现条件:

其次是编程上的实现条件。在编程实现上,一般来说暴力枚举需要两个条件,一是枚举的范围一般需要连续,如果枚举范围是离散的,那么一般很难使用for循环枚举出所有状态,也就不能保证解的完整性(不过有些时候数据看似离散,但实际上可以经过处理变得连续)。第二个条件是枚举内容需要已知,不能在枚举到某个地方的时候出现未知(不过这个一般都被满足)。

解题思路

(1)找到枚举变量(尽量由已知推未知)

(2)找到并尽量缩小范围(根据题意但无需太过精确,可以过大,条件在if中判断即可

(3)依据题意进行操作(尽量剪枝)

目录

P2241 统计方形

P1618 三连击(升级版)

P3392 涂国旗

P3799 妖梦拼木棒

D:货物摆放


一、P2241 统计方形

易得:

子矩形构成的矩阵的长宽是由原矩形长宽减去不同数而得,即(n-b)*(m-a) (a≠b)

子正方形构成的矩阵的长宽由原矩形长宽减去相同数而得,即(n-b)*(m-a) (a=b)


                
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NO.-LL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值