纸牌游戏

题目链接

https://ac.nowcoder.com/acm/contest/7606/B

解题思路

每个人的回合要淘汰尽可能多的人,所以肯定优先淘汰手牌少的。
谁的手牌少?那些抽得的手牌数比被抽走的手牌数少的人吧。
我们根据抽取数量的多少从小到大将他们排序,顺序遍历,因为我们要先淘汰容易淘汰的吧,也就是获取手牌数量少的;若此人可获取的手牌数量比在场剩下的人(不包括他自己)的数量都少,说明他的手牌数量在减少,每轮都减少,肯定最终被淘汰;将每个人都遍历一遍,最后剩下的就是无法被淘汰的人数。

AC代码

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+100;
int main(){
    int now,n,a[N];
    cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i];
    sort(a+1,a+n+1);
    now=n;
    for(int i=1;i<=n;i++){
        if(a[i]<now-1) now--;
    }
    cout<<now<<endl;
}
全部评论

相关推荐

07-15 12:15
门头沟学院 Java
点赞 评论 收藏
分享
07-18 15:02
门头沟学院 Java
刚打开网申页面就不想填了,还是不要为难自己了
poppinzhan...:多益老行业毒瘤了,碰到徐波这种恶心的烂人,去了也是受罪。
点赞 评论 收藏
分享
06-20 21:22
已编辑
门头沟学院 Java
纯真的河老师在喝茶:答应了就跑啊,实习随便跑啊,别被pua了,md就是找个廉价劳动力,还平稳过度正式工,到时候跟你说没转正
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-15 17:17
听说过付费实习,没想到这么贵啊我去,要不我给你个腰子吧
哈哈哈,你是老六:这种公司一定要注意啊,不要随便签合同,只要签了后面钱可能回不来,而且你通过法律途径也弄不回
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务