麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

HDU 3593 The most powerful force 樹狀dp

2019-11-11 05:11:35
字體:
來源:轉載
供稿:網友

PRoblem: 有很多的士兵需要出征,如果士兵出征那他的上級也必須出征,如果一個士兵的上級是自己,那么說明自己就是老大,最多不超過500個老大,每個士兵有兩個屬性,需要花費的錢和能貢獻的價值,給定允許消費的最大的錢,問最多的貢獻是多少? Solution: 很明顯可以看到題目的數據結構是一個森林,但是我們可以通過設置一個0節點當做所有老大的父節點,這樣就轉化為了一棵樹,這個問題很像一個背包問題,但有點區別,當一個士兵是葉子時,想一個物品一樣直接更新即可,但是如果它不是一個葉子,那么他還有很多的子節點,這時在進行其它兄弟節點dp時,一開始的初始化已知最優解就很關鍵了,也就是說每一個兄弟節點在動規時都使用的是當前子樹的最優值,這就可以保證這棵子樹動歸完成后是最優解??梢岳斫鉃檎麄€個動態規劃就是利用每一棵子樹不斷的更新可以購買這棵子樹的解。

#include<cstdio>#include<iostream>#include<sstream>#include<cstdlib>#include<cmath>#include<cctype>#include<string>#include<cstring>#include<algorithm>#include<stack>#include<queue>#include<set>#include<unordered_set>#include<map>#include<unordered_map>#include<ctime>#include<vector>#include<fstream>#include<list>#include<numeric>#include<functional>using namespace std;typedef long long ll;typedef unsigned long long ull;#define ms(s) memset(s,0,sizeof(s))const double PI = 3.141592653589;const int INF = 0x3fffffff;int c[100010], v[100010];vector<int> Tree[100010];int dp[505][10010];int n, maxg;void solve(int root, int g) { for(int i = 0; i < Tree[root].size(); i++) { int child = Tree[root][i]; if(Tree[child].empty()) { for(int j = g; j >= c[child]; j--) { dp[root][j] = max(dp[root][j], dp[root][j-c[child]]+v[child]); } } else { for(int j = 0; j <= g-c[child]; j++) { dp[child][j] = dp[root][j]; } solve(child, g-c[child]); for(int j = g; j >= c[child]; j--) { dp[root][j] = max(dp[root][j], dp[child][j-c[child]]+v[child]); } } }}int main() {// freopen("/Users/really/Documents/code/input","r",stdin); // freopen("/Users/really/Documents/code/output","w",stdout); ios::sync_with_stdio(false); int fa; while(cin >> n >> maxg) { //init for(int i = 0; i <= 500; i++) Tree[i].clear(); ms(dp); for(int i = 1; i <= n; i++) { cin >> c[i] >> v[i] >> fa; if(fa == i) Tree[0].push_back(i); else Tree[fa].push_back(i); } solve(0, maxg); cout << dp[0][maxg] << endl; } return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 把娇妻调教成暴露狂 | 老司机免费福利午夜入口ae58 | 国产 日韩 一区 | 在线看免电影网站 | 国内毛片视频 | 日本在线视频二区 | 在线看一区二区三区 | 免费黄色在线观看网站 | 成人一区二区在线观看视频 | 久久精品视频在线免费观看 | 女人叉开腿让男人桶 | 欧美女孩videos | 黄色毛片a级| 国产女同疯狂激烈互摸 | 黄视频网站免费观看 | 久久精品一二三区 | 91成人免费看 | 色妞欧美| 青草av.久久免费一区 | 男女牲高爱潮免费视频男女 | 免费a级毛片永久免费 | 91久久精品一区二区 | 黄色毛片视频在线观看 | 国产免费看片 | 91精品国产一区二区三区动漫 | 一区二区三区日韩精品 | 成人免费区 | 午夜视频亚洲 | 高清国产午夜精品久久久久久 | 国产精品美女一区二区 | 羞羞色院91精品网站 | 欧美韩国日本在线 | 一区二区三区视频在线播放 | av在线免费看网站 | 黄色试看视频 | 欧美日韩高清一区 | 国产精品一区99 | www.成人精品 | 操你视频| 日本娇小videos高潮 | 成人午夜免费看 |