DP
文章平均质量分 69
西风丶
这个作者很懒,什么都没留下…
展开
-
HDU5534--Partial Tree (完全背包)
点击打开链接思路:总度数为2n-2,由于每个节点都至少要有1个度,所以可以看做把剩余n-2个点放入n个节点的背包问题。dp[i]表示放入i个度后的最大值#include#include#includeusing namespace std;const int INF=-1e9;int f[10010];int dp[10010];int main(){ int T;原创 2016-07-14 16:58:22 · 275 阅读 · 0 评论 -
区间DP合集
①HDU5115:http://acm.hdu.edu.cn/showproblem.php?pid=5115题意:每只狼有自身攻击和额外攻击两个属性,杀手杀死它时受到它自身攻击(ai)和相邻两只(一只)狼的额外攻击(b(i-1) , b(i+1))之和,杀死之后相邻关系会对应调整,求杀手杀死全部狼受到的最少伤害。思路:一开始一直想贪心,结果还是放弃了.....区间DP,dp[i]原创 2016-09-16 15:29:52 · 1143 阅读 · 0 评论 -
HDU5898、 HDU 2089(数位DP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5898题意:很明确,找出区间[l , r]中符合连续奇数为偶数,连续偶数为奇数的个数。思路:dp[i][j][1]表示i位数j开头符合条件的数,dp[i][j][0]表示i位数j开头(之后)可能符合条件的数。#include#includeusing namespace std;typ原创 2016-09-22 22:06:38 · 225 阅读 · 0 评论 -
codeforces Educational Codeforces Round 16-E(DP)
题目链接:http://codeforces.com/contest/710/problem/E题意:开始文本为空,可以选择话费时间x输入或删除一个字符,也可以选择复制并粘贴一串字符(即长度变为两倍),问要获得长度为n的串所需最少的时间。思路:dp[i]表示获得长度为i的串所需要的最短时间,分i为奇数和偶数讨论。#includeusing namespace std;const i原创 2016-08-24 17:26:10 · 267 阅读 · 0 评论 -
codeforces 682D(DP)
题目链接:http://codeforces.com/contest/682/problem/D思路:dp[i][j][l][0]表示a串前i和b串前j利用a[i] == b[j]所得到的最长子序列, dp[i][j][l][1]表示a串前i和b串前j不利用a[i] == b[j]所得到的最长子序列,所以,dp[i][j][l][0] = max(dp[i-1][j-1][l][原创 2016-09-12 23:29:46 · 331 阅读 · 0 评论 -
codeforces 597C (树状数组+DP)
题目链接:http://codeforces.com/contest/597/problem/C思路:dp[i][j]表示长度为i,以j结尾的上升子序列,则有dp[i][j]= ∑dp[i-1][k](1#include#define lowbit(x) x&(-x)typedef long long ll;const int N=1e5+3;ll dp[12][N];using原创 2016-08-19 22:37:45 · 444 阅读 · 0 评论 -
codeforces 711C Coloring Trees(DP)
题目链接:http://codeforces.com/problemset/problem/711/CO(n^4)的复杂度,以为会超时的思路:dp[i][j][k]表示第i棵数用颜色k涂完后beauty为j#includeusing namespace std;typedef long long ll;const ll inf=1e15;int c[105];int p[10原创 2016-08-30 12:15:18 · 412 阅读 · 0 评论 -
codeforces 666A (DP)
题目链接:http://codeforces.com/problemset/problem/666/A思路:dp[i][0]表示第a[i-1]~a[i]组成的字符串是否可行,dp[i][1]表示第a[i-2]~a[i]组成的字符串是否可行,显然dp[len-2][0(1)]必定不可行。转移方程:dp[i][0] = dp[i+3][1] || dp[i+2][0] && (tmp1原创 2016-09-09 23:24:07 · 356 阅读 · 0 评论 -
HDU4055 - number string(DP)
Problem DescriptionThe signature of a permutation is a string that is computed as follows: for each pair of consecutive elements of the permutation, write down the letter 'I' (increasing) if the sec原创 2016-08-29 18:28:34 · 556 阅读 · 0 评论 -
codeforces #round363 div2.C-Vacations (DP)
题目链接:http://codeforces.com/contest/699/problem/Cdp[i][j]表示第i天做事情j所得到最小的假期,j=0,1,2。#includeusing namespace std;const int INF=0x3f3f3f3f;int dp[105][3];int main(){ int n; scanf("%d",&n)原创 2016-08-18 21:52:51 · 238 阅读 · 0 评论 -
HDU5763 another meaning -(KMP+DP)
DescriptionAs is known to all, in many cases, a word has two meanings. Such as “hehe”, which not only means “hehe”, but also means “excuse me”.Today, ?? is chating with MeiZi online, MeiZi sends原创 2016-08-28 16:09:50 · 463 阅读 · 0 评论 -
codeforces round367 div2.C (DP)
题目链接:http://codeforces.com/contest/706/problem/C#includeusing namespace std;typedef long long ll;const int N=1e5+3;const ll INF=1e18;ll dp[N][2];string a[N],b[N];int c[N];int main(){ in原创 2016-08-15 16:35:32 · 308 阅读 · 0 评论 -
POJ3254-Corn Fields(状压DP)
题目链接:http://poj.org/problem?id=3254思路:把每行的状态转化成一个二进制数,每个数代表一种放置方法,dp[i][j]=Σdp[i-1][k](k为满足条件的放置方法)。#includeusing namespace std;const int MOD=1e8;int dp[13][(1<<12)+5];int a[13],b[(1<<12)+5];原创 2016-08-15 16:25:00 · 309 阅读 · 0 评论 -
HDU2191(多重背包)
经典多重背包问题点击打开链接#include#define N 100010using namespace std;typedef long long ll;int main(){ int T; int i,j,k,t; int max_value,kind; int value[N],weight[N],num[N],原创 2016-05-18 22:45:16 · 534 阅读 · 0 评论 -
codeforces 721C (拓排 + DP)
题目链接:http://codeforces.com/contest/721/problem/C题意:从1走到n,问在时间T内最多经过多少个点,按路径顺序输出。思路:比赛的时候只想到拓排然后就不知道怎么办了......先拓扑排序,再按照拓扑的顺序进行DP,dp[to][j](到i点走过j个点最短时间) = min(dp[to][j], dp[i][j] + dis)#include原创 2016-10-02 19:41:16 · 1310 阅读 · 0 评论