算法竞赛进阶指南 dp
文章平均质量分 79
郑三原阿
这个作者很懒,什么都没留下…
展开
-
POJ 3666 玄学dp
题意:给你一个序列A 构造一个序列B 使得B单调上升或单调下降 求序列B-序列A的绝对值的和的最小值思考可知 序列B一定是由序列A中的数得来的 所以用dp[i][j]记录把第i个数换成B[j]的最小花费dp[i][j] = min(dp[i-1][1~j]+abs(A[i]-B[j]));实际操作中第一层dp[i]没有什么意义 所以可以直接省略 很迷的一道题 真滴迷AC代码:#include &l...原创 2018-03-22 13:24:54 · 197 阅读 · 0 评论 -
tyvj-1061 Mobile Service 基础dp
题意:一个公司有三个移动服务员。如果某个地方有一个请求,某个员工必须赶到那个地方去(那个地方没有其他员工),某一时刻只有一个员工能移动。被请求后,他才能移动,不允许在同样的位置出现两个员工。从p到q移动一个员工,需要花费c(p,q),c(p,p)=0。公司必须满足所有的请求。目标是最小化公司花费。一开始三个服务员分别在位置1,2,3。输入格式第一行有两个整数L,N(3<=L<=200,...原创 2018-03-23 13:27:52 · 512 阅读 · 0 评论 -
TYVJ-1011 / NOIP2008 传纸条
题意:给你一个n*m的矩阵 求两条从(1,1)开始至(n,m) 的路径 使得两条路径所经过的数值和最大 同一元素只能累加一次且只可往右或往下走 不可往上或往左走思路:如果直接循环枚举两条路径所经过的位置 状态转移无法描述 且无法处理重复元素根据上一题的启发 可用dp[i][x1][x2]表示第i步第一条路径的横坐标和第二条路径的横坐标因为两条路径是从左上往右下单向的 不可往回走 所以两条路径上任...原创 2018-03-23 16:52:07 · 200 阅读 · 0 评论 -
POJ 2279 dp?杨氏矩阵+钩子定理
题意:已知一个k行每行有a[i](1 <= i <= k)个人的队列 给n个身高分别为1~n的人安排队列 要求队列从左往右身高递减 从后往前身高递减 1表示最高 n表示最矮 求方案数书上说可以用dp的思路做 然而写出来MLE ???? 方法挺好 dp[z1][z2][z3][z4][z5]表示第1-5行的人数如果z1<=a[1] 就可以 通过 dp[z1][z2][z3][z4...原创 2018-03-21 17:40:58 · 444 阅读 · 0 评论 -
ZOJ - 2432 / HDU - 1423 最长公共上升子序列
题意:求最长公共上升子序列LIS:dp[i] 存 以A[i] 为结尾的最长上升子序列的长度 O(n^2) 普通 O(nlogn) 二分优化if(A[i] > A[k]) dp[i] = max(dp[i],dp[k]+1) (k < i)LCS:dp[i][j] 存以A[i]为结尾和B[j]为结尾的最长公共子序列 O(n^2)if(A[i] == B[j])dp[i][j] = dp[...原创 2018-03-21 20:57:46 · 274 阅读 · 0 评论