动态规划
ZoneFv
这个作者很懒,什么都没留下…
展开
-
NYOJ 214 单调递增子序列(二)
http://acm.nyist.net/JudgeOnline/problem.php?pid=214这是一个很好的题目。题目的算法还是比较容易看出来的,就是求最长上升子序列的长度。不过这一题的数据规模最大可以达到40000,经典的O(n^2)的动态规划算法明显会超时。我们需要寻找更好的方法来解决是最长上升子序列问题。先回顾经典的O(n^2)的动态规划算法,设A[i]表示序列中的第i原创 2012-07-11 10:18:24 · 1275 阅读 · 0 评论 -
nyoj 61 传纸条 (动态规划)
题目大意:略解题思路:可以看做是从起点传两次纸条到终点,且两个经过的路线不能有交叉我们可以用dp[k][i][j]来表示第k步第一个纸条的状态为(i , k+2-i)和第二个纸条的状态(j , k+2-j);因为i+j=k+2(因为是从(1,1)开始的),所以我们可以只用纸条横坐标i表示它当前所在的状态;#include#include#includeusing原创 2013-07-29 16:23:39 · 1584 阅读 · 0 评论 -
poj 2411 Mondriaan's Dream (状态压缩dp 入门)
转载自http://blog.csdn.net/hopeztm/article/details/7841917这个题目类属于状态压缩DP,对于状态压缩DP,其实最简单的理解就是把状态用比特位的形式表示出来,我们会在下面用例子来说明。假如现在我们在铺砖 位置(i, j), 并且假设之前的位置已经铺设好的了,在这个位置,我们的选择:1. 不用铺砖了,可能在(i-1, j)的时刻原创 2013-07-13 19:02:36 · 1075 阅读 · 0 评论 -
树形dp 219D Choosing Capital for Treeland
http://codeforces.com/problemset/problem/219/D题意:可以这么理解为—— 一些城市的道路之间是有向边,如果沿着路的方向来走花费的价值为 0,如果逆向行走花费的价值为 1,选择一些点为首都,使其到其他点所花费的价值最小思路:树形dp运用两次深搜,第一次深搜求出点i到以其自身为根节点的子树上其他点总共需要花费的价值,dp[ i ] 记录。原创 2013-07-10 11:12:58 · 1434 阅读 · 0 评论 -
nyoj 269 VF ( 动态规划)
http://acm.nyist.net/JudgeOnline/problem.php?pid=269英文题很难理解,题意:1~1000000000之间,各位数字之和等于给定s的数的个数状态转移方程:d[i]][j]=d[i][j]+d[i-1][j-k] (0dp[i][j]保存的是前i位上数字之和是j的个数#includeint dp[10][82];void f原创 2012-08-09 17:14:33 · 1056 阅读 · 0 评论 -
最长公共子序列
参考 http://www.cnblogs.com/zhangchaoyang/articles/2012070.html经典的动态规划问题#include#includeint m[1002][1002];int main(){ int n,k,s,i,j; char a[1002],b[1002]; scanf("%d",&n); while(n--) {原创 2012-03-31 16:44:58 · 600 阅读 · 0 评论 -
nyoj 10 sking
http://acm.nyist.net/JudgeOnline/problem.php?pid=10当开始思路错了,wa了好多次动态规划与搜索的结合,用二维数组保存当前搜到的点为递增序列最大值的最长递增序列的长度#include#includeint map[105][105];int visit[105][105];//保存当前最长递增序列的长度int f[4][2原创 2012-08-03 19:08:09 · 900 阅读 · 0 评论 -
NYOJ 546 Divideing Jewels 多重背包
http://acm.nyist.net/JudgeOnline/problem.php?pid=546#include#include#includeusing namespace std;int dp[50010],v,j;void zeroonePack(int c,int w)//01背包{ for(j=v;j>=c;j--) dp[j]=max(dp[j],原创 2012-07-11 18:29:02 · 1331 阅读 · 0 评论 -
HDU 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 多重背包
http://acm.hdu.edu.cn/showproblem.php?pid=2191这是做的多重背包类型的第二题,感觉自己运用的还不是太熟悉,继续加油。。。#include#includeusing namespace std;int v,j;int a[105],b[105],c[105],dp[105];void zeroonePack(int x,int y){原创 2012-07-12 09:01:10 · 1533 阅读 · 0 评论 -
动态规划题目小结
前两天省赛结束了,为了它我们集训了两个月,从早到晚,但是结果却不是我们想要的结果,与金奖失之交臂了........经过这次比赛,我们发现我们队的dp简直弱爆了,因此我决定来好好的学学动态规划这个非常奇妙的东西,写篇博客记录下NYOJ 708 onesn给一个整数n,要你找一个值为n的表达式,这个表达式只有1 + * ( )够成。并且1不能连续,比如11+1就不合法。n输入n原创 2013-05-14 20:25:42 · 1246 阅读 · 0 评论