ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

CF1701C Schedule Management

2022-07-15 11:00:15  阅读:169  来源: 互联网

标签:Management Schedule int res CF1701C mid long 擅长 时间


题目:Problem - C - Codeforces 

 

    有 n 个工人和 m个任务,每个任务都有且仅有一个工人擅长做,如果让擅长做的工人去做,那么要花一个单位时间,否则要花两个单位时间。请问完成所有的任务至少要花多少时间。

 

    注意:每项工作只能由一个工人完成,不能合作完成。

    分情况:例如 1 1 1 1,时间给了3单位,1最多再3单位时间内完成三个剩下的得找其他人来做。那2呢他没有擅长的但是他在三时间的单位内能完成1个他不擅长的工作。这样一来我们就可以推公式。我们设res为空余时间能够做多少工作。设a[i]为他所擅长的工作数,时间为x,当时间大于擅长数说明有空余时间,(x-a[i])/2代表空余的时间还能做几件工作,当擅长数大于时间数,说明得其他人帮他做res-=(a[i]-x)。二分枚举答案即可。

 1 #include<iostream>
 2 #include<cstring>
 3 using namespace std;
 4 const int N=2e5+10;
 5 int a[N];
 6 int n,m;
 7 bool check(int x)
 8 {
 9     int res=0;    //空闲时间足够做多少不熟练的工作 
10     for(int i=1;i<=m;i++)
11     {
12         if(a[i]<=x)      //自己时间富足 有空闲时间 
13         {
14             res+=(x-a[i])/2;
15         }else {
16             res-=(a[i]-x);//将自己的工作移交他人 
17         }
18     }
19     return res>=0;
20 }
21 int main()
22 {
23     int t;
24     cin>>t;
25     while(t--)
26     {
27        cin>>m>>n;
28        memset(a,0,sizeof a);
29        for(int i=1;i<=n;i++)
30        {
31             long long x;
32             cin>>x;
33             a[x]++;
34        }
35        long long ans=400005;
36        long long  l=0,r=400005;
37        while(l<=r)
38        {
39            int mid=(l+r)>>1;
40            if(check(mid))
41            {
42                ans=mid;
43                r=mid-1;
44            }else l=mid+1;
45        }
46        printf("%lld\n",ans);
47     }
48     return 0;
49  } 

 

标签:Management,Schedule,int,res,CF1701C,mid,long,擅长,时间
来源: https://www.cnblogs.com/acmzk/p/16480534.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有