uva 12186 DP

来源:互联网 发布:注册音乐人软件 编辑:程序博客网 时间:2024/05/17 11:33
#include<cstdio>#include<cstring>#include<algorithm>#include<vector>using namespace std;int n,t,x;vector<int> g[100010];int dfs(int u){if(g[u].empty()) return 1;int k=g[u].size();vector<int>d;for(int i=0;i<k;i++) d.push_back(dfs(g[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++) g[i].clear();for(int i=1;i<=n;i++){scanf("%d",&x);g[x].push_back(i);}printf("%d\n",dfs(0));}}