背包
firstorloser
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hdu 1114 Piggy-Bank (完全背包)
题目大意:给你一个存钱罐,n种类型的硬币,原创 2014-07-28 20:46:21 · 332 阅读 · 0 评论 -
hdu 1011 Starship Troopers (树形dp+背包)
树形dp加泛化背包,状态转移方程dp[u][j]=max(dp[u][j],dp[v][k]+dp[u][j-k]),有很多细节需要注意,叶子节点就算没有bug也要留人,还有m=0的特殊情况。#include <iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<vector> #define N 105原创 2015-03-28 15:56:55 · 342 阅读 · 0 评论 -
hdu 1561 The more, The Better (树形dp+背包)
设dp[u][j]为以u为根的子树,选取了j个点所能取得的最大价值,状态转移方程dp[u][j]=max(dp[u][j],dp[u][j-k]+dp[v][k]) #include #include #include #include #include using namespace std; vectoredge[205]; int w[205],dp[205][205],sum原创 2015-03-25 19:52:09 · 277 阅读 · 0 评论 -
hdu 3593 The most powerful force (树形dp+背包)
#include<cstdio> #include<cstring> #include<algorithm> #include<vector> #define N 100005 using namespace std;int n,g,c[N],val[N],dp[505][10005]; vector<int>edge[N];void dfs(int u,int vol) { in原创 2015-03-29 23:12:18 · 359 阅读 · 0 评论 -
poj 1947 Rebuilding Roads (树形dp+背包)
定义dp[u][j]为以u为根的子树,形成含有j个点的独立的子树所需要切的最少的边。 对于每个节点,考虑它的每个儿子是否要切掉,初始时dp[u][1]=0,这时还没有考虑任何的儿子节点,所以不用切边。 然后依次考虑每个儿子节点,若该儿子节点要切掉,则dp[u][j]++,否则dp[u][j]=dp[v][k]+dp[u][j-k] #include #include #include原创 2015-03-24 18:46:28 · 311 阅读 · 0 评论
分享