• UVa 12186 Another Crisis 工人的请愿书


    c表示某上司上报的最少请愿下属,k表示总下属
    c=0.01T*k=kT/100(0.01T*k是整数)
    c=[0.01T*k]+1=[kT/100]+1(0.01T*k不是整数)
    kT=100 c=1 kT=101 c=2 因此c=[(kT-1)/100]+1

     1 #include<cstdio>
     2 #include<vector>
     3 #include<algorithm>
     4 using namespace std;
     5 int n,t,ans;
     6 vector<int> child[100010];
     7 int dp(int x)
     8 {
     9     if(child[x].empty())    return 1;
    10     int k=child[x].size(),i;
    11     vector<int> temp;
    12     for(i=0;i<k;i++)
    13         temp.push_back(dp(child[x][i]));
    14     sort(temp.begin(),temp.end());
    15     int ans=0,c=(k*t-1)/100+1;
    16     for(i=0;i<c;i++)
    17         ans+=temp[i];
    18     return ans;
    19 }
    20 int main()
    21 {
    22     int i,t2;
    23     scanf("%d%d",&n,&t);
    24     while(n!=0&&t!=0)
    25     {
    26         for(i=1;i<=n;i++)
    27         {
    28             scanf("%d",&t2);
    29             child[t2].push_back(i);
    30         }
    31         ans=dp(0);
    32         for(i=0;i<=n;i++)
    33             child[i].clear();
    34         printf("%d
    ",ans);
    35         scanf("%d%d",&n,&t);
    36     }
    37     return 0;
    38 }
  • 相关阅读:
    111111
    国际化(提取代码中文)
    分库操作(无事务)
    Nignx(四)location语法详解
    Nginx项目笔记
    SAX:进行XML解析
    流处理PDF、Base64
    JAVA8:stream流
    JPA一对多,多对一映射
    有关技术站点
  • 原文地址:https://www.cnblogs.com/hehe54321/p/7300236.html
Copyright © 2020-2023  润新知