• Subordinates(贪心)


    题目大意:

    一共有N个员工,其中最高领导人是编号s的人,每个人都只有一个直接领导,每个人都说出了自己领导的个数,问最少有几个人撒谎了。

    思路: 合理的贪心是该把排最后的数变成缺少的数字,然后继续判断。 (不一定非要01234 可以011223)

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<algorithm>
     4 #include<cstring>
     5 #include<cmath>
     6 #include<set>
     7 #include<vector>
     8 #include<stack>
     9 #include<queue>
    10 #include<map>
    11 using namespace std;
    12 #define ll long long
    13 #define se second
    14 #define fi first
    15 const int INF= 0x3f3f3f3f;
    16 const int N=2e5+5;
    17 
    18 int a[N];
    19 
    20 int main()
    21 {
    22     int n,s,cnt=0;
    23     cin>>n>>s;
    24     for(int i=0;i<n;i++){
    25         cin>>a[i];
    26         if(i!=s-1 && a[i]==0 ) a[i]=INF;
    27     }
    28     if(a[s-1])  cnt++,a[s-1]=0;
    29     sort(a,a+n);
    30     int j=1,i=1;
    31     while(i<=n-1) //从i=1开始
    32     {
    33         if(a[i]==j)
    34         {
    35             while(a[i]==j)
    36                 i++;
    37         }
    38         else
    39             cnt++,n--;
    40         j++;
    41     }
    42     cout<<cnt<<endl;
    43 }

    或者

     1 int main(){
     2     scanf("%d%d", &n, &s);
     3     int cnt = 0;
     4     for(int i=1; i<=n; i++){
     5         scanf("%d", &a[i]);
     6         if(i==s&&a[i]!=0){
     7             cnt++;
     8             a[i] = 0;
     9         }
    10         else if(i!=s&&a[i]==0){
    11             a[i] = n;
    12         }
    13         num[a[i]]++;
    14     }    
    15     sort(a+1,a+1+n);
    16     int t = 1;
    17     for(int i=1; i<n; i++){
    18         if(num[i]==0){
    19             cnt++;
    20             num[i]++;
    21         }
    22         t+=num[i];
    23         if(t>=n)break;
    24     }
    25     printf("%d
    ",cnt);
  • 相关阅读:
    支付宝沙箱环境应用
    七牛云视频托管
    腾讯云短息验证码接口
    git远程连接(码云)
    git
    字间距
    html文本保留空格
    mysql重启导致AUTO_INCREMENT从1开始
    js保留两位小数
    vue中watch的基本用法
  • 原文地址:https://www.cnblogs.com/thunder-110/p/9280471.html
Copyright © 2020-2023  润新知