dp uva12186树上的动态规划

来源:互联网 发布:php 数组键值排序 编辑:程序博客网 时间:2024/05/16 06:32

题目链接


d(u)表示让u给上级发信最少需要多少工人


#include <bits/stdc++.h>using namespace std;const int maxn = 1e5+10;int N,T,f;vector<int> sons[maxn];int dp(int u){if(sons[u].empty()) return 1;int k = sons[u].size();vector<int> d;for(int i=0; i<k; i++)d.push_back(dp(sons[u][i]));sort(d.begin(),d.end());int c = (k*T-1)/100 + 1;int ans = 0;for(int i=0; i<c; i++) ans += d[i];return ans;}int main(){while(scanf("%d%d",&N,&T)==2 && (N||T)){for(int i=0; i<=N; i++) sons[i].clear();for(int i=1; i<=N; i++){scanf("%d",&f);sons[f].push_back(i);}printf("%d\n",dp(0));}}


0 0
原创粉丝点击