https://codeforces.com/contest/1782/problem/B

题目大意就是给定n个人,每个人有一个除自己之外的最少陪同人数,选一部分人去电影院,要求去的人人数大于等于去的每个人要陪同的人数,不去的人要求陪同的人数要大于要求去的人数

废话不多说上代码

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N=2e5+10;
int a[N],p[N];
int t;
int main(){
cin>>t;
while(t--){
int n;
cin>>n;
int m=0;
memset(p,0,sizeof p);
for(int i=1;i<=n;i++){
int x;
cin>>x;
if(p[x]==0) a[++m]=x;//记录每种陪同人数
p[x]++;//记录每种陪同人数的个数
}
sort(a+1,a+1+m);
//我们这里先排序,当序列由小到大时,我们发现如果后面的能去的话,前面的必须得去
int res=0,num=0;
//注意人数减一是因为不包含自己
for(int i=1;i<=m;i++){
if(num<a[i]&&max(num-1,0)>=a[i-1]) res++;//对于方案来说,如果该人不去是合法的则方案数加一
num+=p[a[i]];
}
if(num-1>=a[m]) res++;//最后判断一下是否所有人去都合法
cout<<res<<endl;
}
}

最新文章

  1. Android模拟位置信息
  2. lisp等
  3. nginx--配置https服务器
  4. MySQL对于数据库应该如何如何配置安全问题了
  5. 用js实现返回上一页
  6. 前端面试库_JS部分_02
  7. UIStackView 看我就够了
  8. AngularJS 路由:ui-router
  9. Python自带的日志模块logging的使用
  10. poj 3320 Jessica&#39;s Reading Problem(尺取法)
  11. j2se总结
  12. ASP.NET 程序发布详细过程
  13. Python学习--10 面向对象编程
  14. 機器學習基石 (Machine Learning Foundations) 作业1 Q15-17的C++实现
  15. C语言--第六周作业
  16. bzoj4919 [Lydsy1706月赛]大根堆
  17. 【我们一起写框架】MVVM的WPF框架(四)—DataGrid
  18. 【原创】Java基础之常用JVM工具
  19. 20155312 张竞予 Exp2 后门原理与实践
  20. Java中map集合系列原理剖析

热门文章

  1. 080_Dataloader.io
  2. ROS多机通信
  3. 基于Geojson的点集的抽稀Js实现
  4. containerd容器存储探究
  5. Ubuntu之切换root用户提示认证失败
  6. mongodb-命令小结
  7. 根据Query的名字查找是那个CLF逻辑中使用
  8. 我们后端代码这样子设置虽然这样子返回的是字符串,但是json字符串也是字符串
  9. POD状态整理(持续更新)
  10. 36.201——LTE物理层——总体描述物理层综述协议