才不告诉你这些学校没讲呢!
都是些算法的简单思想简单总结,大佬勿入(嗯,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—-终于写完了。