才不告诉你这些学校没讲呢!
都是些算法的简单思想简单总结,大佬勿入(嗯,dp开始涉及几何了)
数位dp:
有的题要求的是一个数中的数字的排列的方式的种数,而并非与数本身有关系。它常常会给你一个区间 询问其中有多少个满足题意的数字,这时就要用数位dp。它是一种记忆化搜索,它的状态常常是 前i位满足题意的数字个数。同时要注意控制上界。答案就是ans(r)-ans(l-1)。
习题
基础:HDU 2089 HDU 4734 POJ 3252 HDU 4507
水水水题:HDU 3709 UVA 1305 Hbzoj 1799
斜率优化:
通常有这样的问题: 有限制条件。本来这样的题是 复杂度,但是使用优先队列就可以降为 了。
但是这样的方程呢: 哦豁优先队列不得行了。
斜率优化是优先队列的优化。
设我们选择 比 时优,即有:
变形,得: ,此处注 要单增。
令两个点 , 显然不等式左边的几何意义为点 与点 的斜率,而j优于k的条件为斜率小于 ,即斜率越小越好。
然后再用优先队列维护一个点集,队列中相邻两点的斜率单增(斜率越小越好),然后每次根据上面的不等式维护队首即可。时间复杂度这时被降为了
习题
懒得打链接的博猪推荐:
[hdu3507] 打印文章(引例)
[HNOI2008] 玩具装箱
[CEOI2004] 锯木厂选址
[ZJOI2007] 仓库建设
[USACO 2008 March Gold] 土地购买
[APIO2010] 特别行动队
[APIO2014] 序列分割
[bzoj3437] 小P的牧场
[SDOI2016] 征途
决策单调性优化:
没看懂,以后再更。四边形不等式撒子鬼玄学嘛!!!!反正用个结论,然后降复杂度呀!
习题不会做呀:
BZOJ1563: [NOI2009]诗人小G
BZOJ5311: 贞鱼
相关大佬博客链接
CDQ分治优化:
CDQ分治本身思想是:把一个求解的区间 分为 与 两个区间求解,然后在合并答案时考虑他们对答案多余的贡献,进而求解出 的答案。
dp中的优化大概是区间dp的优化吧:大概可以把 降为 没看到例题呢。
习题:
bzoj 2253: [2010 Beijing wc]纸箱堆叠
bzoj1492
Orz—-终于写完了。