Problem - C - Codeforces

题意: 每个位置对应一种适合的工人,适合的工人工作消耗1h,不适合2h,每个工人不能同时工作多个机器,问将所有机器工作完毕的最小时间是多少。

题解: 二分,对于mid, 判断比他小的和比他大的,然后判断两者之间的大小关系即可。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll,ll> pll;
const int N=2e5+10;
ll a[N];
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
ll t;cin>>t;
while(t--){
ll n,m;cin>>n>>m;
vector<ll> sum(n+1,0);
for(ll i=1;i<=m;i++){
ll p;cin>>p;sum[p]++;
}
ll l=1,r=1e9;
while(l<r){
ll mid=l+r>>1;
ll p=0,q=0;
for(ll i=1;i<=n;i++){
if(mid<sum[i]) p+=sum[i]-mid;//需要几个人代替
else if(mid>=sum[i]) q+=(mid-sum[i])/2;//把不适合的人顶替上
}
if(q>=p){
r=mid;
}
else l=mid+1;
}
cout<<l<<endl;
}
}

最新文章

  1. HDU 1232 并查集/dfs
  2. ES6 fetch函数与后台交互
  3. android studio提示unable to run mksdcard sdk
  4. KMP算法的代码实现
  5. Access数据库在线压缩的实现方法
  6. C#- FTP递归下载文件
  7. Karma-Jasmine之安装与实例详解(一)
  8. jquery.validate.js默认配置,jquery.validate.js自定义提示信息
  9. c#添加事物(全部执行和带保存点的执行)
  10. 解决ubuntu不能安装g++的问题
  11. jenkins新建slave
  12. 深入理解Redis高可用方案-Sentinel
  13. SignalTap导致PCIe Read/Write卡死
  14. Scrapy小技巧-MySQL存储, MYSQL拼接
  15. HTTP Security Header Not Detected未检测到HTTP安全标头
  16. How-to Install VMware Tools on Debian Stretch 9 32/64bit Linux+GNU
  17. css给表格每一列设置不同的样式
  18. Gogent相关问题的解决(不断更新)
  19. windows下类似Linux下的grep命令
  20. jsp中URL传递中文參数的处理

热门文章

  1. 介绍一个好用的dao层与mybatis互跳的idea插件MyBatisCodeHelperPro
  2. 24.Haproxy搭建Web群集
  3. JS:undefined number
  4. ShardingSphere-proxy-5.0.0容量范围分片的实现(五)
  5. umask默认权限及特殊权限
  6. 论文解读(GCC)《Efficient Graph Convolution for Joint Node RepresentationLearning and Clustering》
  7. 避坑手册 | JAVA编码中容易踩坑的十大陷阱
  8. Elasticsearch面试题
  9. netcore 非注入全局获取配置文件
  10. linux 文件存放目录