Vijos P1313 金明的预算方案(树形DP)
2013-02-18 23:09
387 查看
思路:
树形DP,和选课那题一模一样。有依赖的背包,也叫做泛化背包。
树形DP,和选课那题一模一样。有依赖的背包,也叫做泛化背包。
#include <iostream> #include <cstdio> #include <algorithm> using namespace std; const int MAXD = 3210; const int MAXN = 64; int dp[MAXN][MAXD]; int val[MAXN], deg[MAXN], pre[MAXN]; void treedp(int u, int vol, int n) { if (!vol) return ; for (int i = 1; i <= n; ++i) { if (pre[i] == u) { for (int v = 0; v <= vol; ++v) dp[i][v] = dp[u][v]; treedp(i, vol - val[i], n); for (int v = vol; v >= val[i]; --v) dp[u][v] = max(dp[u][v], dp[i][v - val[i]] + val[i] * deg[i]); } } } int main() { int n, vol; while (scanf("%d %d", &vol, &n) != EOF) { vol /= 10; for (int i = 1; i <= n; ++i) scanf("%d %d %d", &val[i], °[i], &pre[i]), val[i] /= 10; for (int v = 0; v <= vol; ++v) dp[0][v] = 0; treedp(0, vol, n); printf("%d\n", dp[0][vol] * 10); } return 0; }
相关文章推荐
- 依赖背包dp NOIP2006 vijos 1313 金明的预算方案
- 金明的预算方案 (有依赖的背包/树形dp)
- Tyvj 1057 金明的预算方案 树形dp
- WUSTOJ 1878 金明的预算方案(有依赖的背包/树形DP)
- 洛谷P1064 金明的预算方案(DP,0-1背包)
- 洛谷 1064 [NOIP2006] 金明的预算方案 背包DP
- 金明的预算方案(有依赖的dp问题)
- 金明的预算方案(树形背包)
- tyvj 1057 金明的预算方案 背包dp
- 金明的预算方案_DP
- 洛谷P1064 金明的预算方案(DP)
- Vijos1313 金明的预算方案
- ACM 背包DP [NOIP2006]金明的预算方案(budget)
- 洛谷 P1064 金明的预算方案(背包dp)
- 2006年分区联赛提高组之二 金明的预算方案(dp)
- P1064 金明的预算方案 DP
- Vijos 1313 金明的预算方案 (分组背包)
- 【DP】洛谷 P1064 金明的预算方案
- NOIP2006金明的预算方案[DP 有依赖的背包问题]
- Sicily 1346 金明的预算方案 (SOJ 1346) 【DP 动态规划-背包问题】