参考(拷贝)
http://blog.csdn.net/loriex/article/details/19755845
四边形不等式
http://blog.csdn.net/willinglive/article/details/41215463
http://blog.csdn.net/willinglive/article/details/38230503
http://blog.csdn.net/willinglive/article/details/41314111
传说中的dp降维方法~
相信查阅过N多资料的亲们应该对它的适用范围了然于心了吧。。
形如dp[i] = min(dp[j] - s[i]s[j]) 已知s[]数组单调递增
那么发现j↑ dp[j]↑ -s[i][j]↓
于是乎我以j为横坐标,dp[j]为纵坐标
对前面i-1个建立一个坐标系,得到了一些点(用队列储存~。。)
然后我们发现,一个点左上方的点全部可以舍去!(可以轻易证明的哦~)
所以我们去掉这些点后得到一个向上的曲线
然后我们发现,如果有a,b,c三点从左到右排列,且a->b的斜率 > b->c的斜率
那么b点也可以舍去!(证明其实还是有点简单的。。~)
所以我们得到了一个向上的斜率不断增加的曲线,就称为凸壳吧~
然后我么发现,如果有a,b,c三点从左到右排列,且a点目前优于b点,那么a点一定优于c点
如果a点目前不如b点,那么以后a点也不会优于b点
PS:这个优于与否就是比较dp[a] - s[i]s[a] dp[b] - s[i]s[b]哪个小,小的优(因为要取min)
有了这两条结论,所以我们只需要维护一个凸壳就行了,
每次求dp[i]时比较前两个,如果第一个点优取第一个点,否则去掉第一个点再比较现在的前两个
得到答案后再把这个i点推入待决策队列中,然后根据i点更新队列
(就是从后往前不断删点直到斜率符合凸壳的性质)
每个点最多进队一次出队一次,所以维护一个凸壳是O(n),计算是O(1),总复杂度O(n*1);
然后推荐两个题目做做啊~
bzoj 1096仓库建设
单调队列/斜率:
斜率优化的基本思想就是转化为前缀和
关于斜率有几个问题需要注意:
1.有时候斜率不存在,即斜率表达式中的分母为0,需要转化为乘法,或者特判
2.乘法有时候会爆int,需要转LL,爆LL的话转double
3.有些题卡时间,斜率中的double除法比乘法慢至少1倍!需要转乘法
斜率单调:单调队列
http://blog.csdn.net/willinglive/article/details/41290871
http://blog.csdn.net/willinglive/article/details/37741477
http://blog.csdn.net/willinglive/article/details/39700123
http://blog.csdn.net/willinglive/article/details/38230533
http://blog.csdn.net/willinglive/article/details/41307257
http://blog.csdn.net/willinglive/article/details/41314111
http://blog.csdn.net/willinglive/article/details/41346567
斜率不单调:二分或三分
坐标也不单调:平衡树或者cdq分治
待解决的题:icpc 2011 F works NOI 货币兑换 bzoj上一堆 NOI 2014 D2T3 购票
递推问题:
http://blog.csdn.net/willinglive/article/details/37768911
http://blog.csdn.net/willinglive/article/details/37769095
http://blog.csdn.net/willinglive/article/details/37937669
http://blog.csdn.net/willinglive/article/details/40550187
http://blog.csdn.net/willinglive/article/details/40742709
http://blog.csdn.net/willinglive/article/details/40744807
LIS | LCS专题:
http://blog.csdn.net/willinglive/article/details/37768105
http://blog.csdn.net/willinglive/article/details/39722749
特殊的预处理技巧:
http://blog.csdn.net/willinglive/article/details/37936949
特殊的转移技巧:
http://blog.csdn.net/willinglive/article/details/37937593
http://blog.csdn.net/willinglive/article/details/37937225
特殊的状态设计:
http://blog.csdn.net/willinglive/article/details/40741775
影响未来状态处理的DP(参考论文《对一类动态规划问题的研究》):
http://blog.csdn.net/willinglive/article/details/38072217
DAG:
http://blog.csdn.net/willinglive/article/details/38684369
一类区间DP:
http://blog.csdn.net/willinglive/article/details/38621683
http://blog.csdn.net/willinglive/article/details/40739431
http://blog.csdn.net/willinglive/article/details/40739827
另一类区间DP:
http://blog.csdn.net/willinglive/article/details/38713097
经典DP:
http://blog.csdn.net/willinglive/article/details/38933477
一类矩阵上的DP:
http://blog.csdn.net/willinglive/article/details/39139331
一类调度问题:
http://blog.csdn.net/willinglive/article/details/39702845
一类树形DP:
http://blog.csdn.net/willinglive/article/details/38070555
http://blog.csdn.net/willinglive/article/details/40084341
http://blog.csdn.net/willinglive/article/details/40084475
http://blog.csdn.net/willinglive/article/details/40084779
http://blog.csdn.net/willinglive/article/details/38072491
http://blog.csdn.net/willinglive/article/details/39647117(最小支配集)
http://blog.csdn.net/willinglive/article/details/40506775
http://blog.csdn.net/willinglive/article/details/40580591
另一类树形DP:
难度1:
http://blog.csdn.net/willinglive/article/details/38666213(特殊的技巧)
难度2:
http://blog.csdn.net/willinglive/article/details/37773313(其实就是预处理复杂点其余没啥)
回文子串:
http://blog.csdn.net/willinglive/article/details/40381363
一类最大子图形:(以后研究)
http://www.docin.com/p-46970779.html
图论相关:
http://blog.csdn.net/willinglive/article/details/40381999
http://blog.csdn.net/willinglive/article/details/37936457
一类覆盖状压:
http://blog.csdn.net/willinglive/article/details/40406413
http://blog.csdn.net/willinglive/article/details/37937999
http://blog.csdn.net/willinglive/article/details/37938039
http://blog.csdn.net/willinglive/article/details/40406413
http://blog.csdn.net/willinglive/article/details/37960395
http://blog.csdn.net/willinglive/article/details/37960421
一类位运算状压:
http://blog.csdn.net/willinglive/article/details/40538247
http://blog.csdn.net/willinglive/article/details/40817431
概率DP:
http://blog.csdn.net/willinglive/article/details/38684905
http://blog.csdn.net/willinglive/article/details/40708853
http://blog.csdn.net/willinglive/article/details/40506965
非常规DP:
http://blog.csdn.net/willinglive/article/details/40746249
一类贪心有序化,然后DP:
http://blog.csdn.net/willinglive/article/details/38014855
数位DP:
http://blog.csdn.net/willinglive/article/details/37938149
http://blog.csdn.net/willinglive/article/details/37938187
http://blog.csdn.net/willinglive/article/details/37938217
http://blog.csdn.net/willinglive/article/details/37771013
神题:
http://blog.csdn.net/willinglive/article/details/40481719
http://blog.csdn.net/willinglive/article/details/38635047
T1、ACDream-EOF女神的打地鼠游戏