uva 12186 lrj-P282 简单树形dp
2017-09-06 22:25
399 查看
题意:
某个人签字的话,他的直属下属里必须有至少T%的人签字,问让老板签字最少需要多少工人签字
题解:
树形dp
以老板为根节点,从小往上,递归计算答案即可
某个人签字的话,他的直属下属里必须有至少T%的人签字,问让老板签字最少需要多少工人签字
题解:
树形dp
以老板为根节点,从小往上,递归计算答案即可
#include<vector> #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; #define maxn 100005 int a,n,T; vector<int>sons[maxn]; int dfs(int u) { if(sons[u].empty()) return 1; int k=sons[u].size(); vector<int>dp; for(int i=0;i<k;i++) dp.push_back(dfs(sons[u][i])); sort(dp.begin(),dp.end()); int c=(k*T-1)/100.0+1,ans=0; for(int i=0;i<c;i++) ans+=dp[i]; return ans; } int main() { freopen("in.txt","r",stdin); while(scanf("%d%d",&n,&T),n+T!=0) { for(int i=0;i<=n;i++) sons[i].clear(); for(int i=1;i<=n;i++) scanf("%d",&a),sons[a].push_back(i); int ans=dfs(0); printf("%d\n",ans); } return 0; }
相关文章推荐
- uva 1220 lrj-P282 最大独立集(树形dp)
- UVa 12186 工人的请愿书(树形DP)
- UVa 12186 Another Crisis(树形DP)
- UVA - 12186 Another Crisis (树形dp)
- UVA - 12186 Another Crisis (树形DP)
- UVa 12186 树形dp
- 【树形DP】UVa 12186 Another Crisis
- UVa 12186 - Another Crisis(树形DP)
- 简单树形dp uvaLive 4472
- uva 12186 Another Crisis 树形dp
- UVA-12186 Another Crisis 树形dp
- 树形dp uva 12186 Another Crisis
- UVA 12186 - Another Crisis(树形DP)
- UVa 12186 - Another Crisis(树形DP)
- Another Crisis - UVa 12186 树形dp
- Party at Hali-Bula UVA - 1220 (简单树形dp)
- UVA 12186 Another Crisis 树形DP
- UVA - 12186 Another Crisis (树形dp)
- UVa - 12186 - Another Crisis ( 树形DP )
- UVA 12186 Another Crisis [树形dp]