训练指南---总结

第一章:思维的体操
1.贪心
2.代数分析
3.根据具体题目、情况的特殊性,寻找突破口,例如蚂蚁问题。

 

第二章:问题求解,常见策略:
1.枚举优化:
  (1)枚举部分,计算另外一部分;需要枚举量之间存在部分关系!
  (2)求解数值较大的时候,有时会需要用到二分枚举的方法。
2.建模能力的培养:
   需要养成将实际问题数字化!模型化的能力,将实际问题改为相关的可求解数据。
3.数学问题:
   寻找问题的特殊性质,  细心+耐心+观察。
4.问题的预处理。
5.深搜广搜的结合使用。

 

第三章:高效算法设计举例:
1.计数排序。约束条件,每一个数字不能过大,不能超过可开数组的范围。
2.枚举的同时,做部分处理,因为每次对于Aj的比较,只需要知道其前j-1个数中的最大值即可,其余的比较都是浪费的。
     例18:开放式学分制,是维护前j个数中的最大值max,可以减少一重循环,有效降低复杂度。(O(n))
3.流星那个题目:
   预处理:预处理将每颗流星的坐标和速度,改为在相机中出现的时间,生成一个数组。
   建模
   求得区间之后,任务即变成:求得一个时间t,使得这个时间的流星最多。
   扫描每次移动到区间的左右端点的再左边一点点。
   再一次使用到前面提到的信息:维护信息而不是重新计算。(因为每次都是累加的!)
4.求连续和的问题:
   给定一个数组A,维护一个前i个数字的和的数组B。
   利用B数组来进行优化。
   比如例21:子序列的题目。

 

 

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值