------DP------
Drenight
Dream in the night.
展开
-
UVa1025
UVa1025(dp)紫书的dp入门题目,属于DAG上求最短路径状态d(i,j)表示i时刻人在车站j的话还需等待的最少时间对于每种状态有2种决策:1:无车:等待1分钟2:有车:搭乘地铁前往最近的一站(左或右选一方向)数组d的i维需要多开一些,因为d[i + time[j-1]]可能造成数组溢出引发RE代码#include#include原创 2016-12-23 00:13:13 · 338 阅读 · 0 评论 -
HDU1024_Max Sum Plus Plus
题意:n个元素的数组,求分成m个不相交段的方法,使这m段之和最大,输出最大和思路:dp,状态dp[i][j]表示前j个物品分成i段的最大和, 状态转移方程:dp[i][j]=max(dp[i][j-1]+arr[i],max(dp[1][j-1]~dp[i-1][j-1] )+arr[j]) 决策:第j个物品①放入现有的i组合求和 ②成为第i组,与前面的i-1组求和原创 2017-02-15 17:27:00 · 357 阅读 · 1 评论 -
Codeforces_809A_Do you want a date?
完全自己解决的一道DP,dp经验值++开始想了个n^2,不过后来感觉有点像多项式加法,就往DP上想意识到2的幂次跟题目关系很大就开始猜公式一开始的公式还自作聪明把2^0+2^1+2^2+……直接用1后来发现过程中i超过32就爆了,后来就换成递推取模了模多取点没事思路概况一下:dp[i]表示最大项不超过arr[i]的区间和,那么每次的操作就是加上前面(子区间总数*ar原创 2017-06-30 20:15:18 · 246 阅读 · 0 评论 -
Wavel Sequence HDU - 6078 多校#4 dp
参考小坏蛋_千千定义dp[i][j]:a[i]与b[j]作为共同串结尾的种类数关键是要弄清每一轮j循环中,b[j]与a[i]不等的时候要往贡献里怎么加东西,而只有在a[i]==b[j]的时候,才会把贡献登记进答案举个例子A:1 5 3B:4 1 1 5 3在i=2,j=2的时候,b[j]#include#include#include#include#inc原创 2017-08-16 00:05:18 · 217 阅读 · 0 评论 -
Find a path HDU - 5492 DP
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2017-10-10 16:45:44 · 207 阅读 · 0 评论 -
Removed Interval HDU - 5489 类LIS/dp
问一个n元序列任删掉一段m长的子段后的LIS长度n1e5,考虑枚举剩下的右端点参与答案贡献,我们需要右端点开始的LIS,以及删除段左边的,刚好比右端点小的点往前跑的LIS前者可以去个负倒过来跑一下,后者双针边跑边更新就行//#include //#pragma comment(linker, "/STACK:1024000000,1024000000") #include原创 2017-10-10 23:47:46 · 177 阅读 · 0 评论 -
Proud Merchants HDU - 3466 贪心背包的证明
做状态更新是使用[ qi - pi , m - pi ]去更新[ qi , m ],对于第i个物品前者是利用域,后者是更新域。当m足够大,两个区间会产生相交,这段相交会更新在从dp[m]向前一段等长上,更新为为w1+w2先1的交区间是[ q1 , m - p2],先2的交区间是[ q2 , m - p1 ],考虑m越来越小,两张图上两个区间右端点都在左移如果有q1-p1<q2-p2,显然第二...原创 2018-03-08 15:59:07 · 232 阅读 · 0 评论