随笔分类 - 动态规划
摘要:题目解释的很清楚了,不多说#1044 : 状态压缩·一时间限制:10000ms单点时限:1000ms内存限制:256MB描述小Hi和小Ho在兑换到了喜欢的奖品之后,便继续起了他们的美国之行,思来想去,他们决定乘坐火车前往下一座城市——那座城市即将举行美食节!但是不幸的是,小Hi和小Ho并没有能够买到...
阅读全文
摘要:挺简单的先谈状态 dp[i][j]表示i---j之间的最少需要加的括号数再谈转移 if S 为 合法序列 那么 (S),[S] 都为合法序列,那么dp[i][j] = dp[i +1][j - 1];if A 为合法序列 && B为合法序列 那么 AB 为合法序列 dp[i][j] = dp[i][...
阅读全文
摘要:类似矩阵连乘的一道题,很简单DP[i][j]表示区间i,j最少费用,状态转移为DP[i][j] = min{DP[i][k],DP[k][j]} + a[j] - a[i]; 1 #include 2 #include 3 #include 4 #include 5 6 #define R...
阅读全文
摘要:题目很容易,找到状态DP[i] 表示前 i 个字符中最少的划分,那么转移DP[i] = min {DP[j] + 1 | s[j +1]...s[i] 为 palindromes} 1 #include 2 #include 3 #include 4 #include 5 6 #defin...
阅读全文
摘要:题目很简单,LIS变形 1 #include 2 #include 3 #include 4 #include 5 #include 6 7 #define REP(i,N) for (int i = 0;i = 0;i--)10 #define INF 0x3f3f3f3f11 #de...
阅读全文
摘要:谈到背包,大家肯定都熟悉,我就不多讲,而这题挺有意思。DP[i][j] 表示前 i 首歌在j时间内唱的最多曲目;状态有了,那么怎么转移呢? DP[i][j] = max{DP[i - 1][j],DP[i - 1][j - t[i]] + 1};但是此题还有时间。所以如果初始化为0的话,按照平常背包...
阅读全文
摘要:一道比较简单的动态规划的题,求从第一列的任何位置 到达最后一列 和的最小值。所以这个状态可以是 列,在每一列有三种决策,直行,右上,右下。DP[i][j] 表示在第i行,j列到达最后一列的最小支出。那么有了状态,我们可以进行转移,DP[i][j] = min{DP[i + 1][j + 1],DP[...
阅读全文
摘要:由于事情的耽误,导致第二天出来的有点慢,今天是我学动态规划的第二天,做了一个DAG上的最长路。一个立方体的高有三个,然后判断个点之间是否可以连接,然后DAG搞定#include #include #include #include #define REP(i,N) for(int i = 0;i >...
阅读全文
摘要:2015年2月11日,我开始了我的DP之路,也不知道能不能掌握,只能一点点的积累了。这是我的第一题UVA1025 (A Spy in the Metro);题目的意思很清楚了,当你在一个汽车站的时候,你之后两种选择,一是等着,二是上车(前提有车),当然有车的时候也可以不做,无所谓;当然有车,也要看方...
阅读全文

浙公网安备 33010602011771号