题解 | 乐团派对

乐团派对

https://www.nowcoder.com/practice/5d73bbc94fe7470680293b1770733420

咱们有一群小乐手,每个乐手都举着小牌子写着:“我想和至少XX人一起组乐队喵~”

喵喵做的第一件事,就是让大家按牌子的数字从小到大排排坐~ 这样才好安排嘛!

这时候会出现一个根本不可能的情况:

如果那个牌子数字最大的小乐手,他要求的数字比总人数还大……(你这个人满脑子都是自己呢)

“喵喵喵?!所有人陪你都不够,这怎么可能嘛!还不如去打卡拉比丘喵!” 所以直接放弃,输出-1

正常情况下呢,喵喵会用贪心魔法来分组:

先从队伍最前面开始,看第一个小乐手的牌子数字,比如写着3。

那喵喵就想:“好吧,先划出3个人的位置试试~”

但是呀,如果划进去的第3个人,他的牌子写着5——

“喵呀!5个人才够!现在只有3个人,他不开心!”

那喵喵只好把范围扩大,变成5个人的位置……

就这样一直调整,直到这个临时小组能满足小组里所有人的牌子要求~

这样一个小乐队就组成啦!喵喵就记下一笔:“乐队++~”

接下来跳过已经组队的人,继续往后看……

不过喵喵很聪明哦,会提前给要求最高的乐手留位置

所以只在安全范围内组队,不会影响到最后那个最难满足的乐手呢~

最后看看笔记一共组了多少个小乐队,就是答案啦!

喵喵的这个方法,能组出最多的乐队哦~ (≧∇≦)ノ

#include <bits/stdc++.h>
using namespace std;
using ll=long long;

int main() {
    int n;cin >> n;//乐队人数
    vector<ll> man(n);//乐队数组
    for(int i=0;i<n;i++)
    {
        cin >> man[i];
    }
    sort(man.begin(),man.end());//顺序排序(记住这步操作!!!)
    ll ans=1;//一开始就把最大的那一队处理掉

    if(man[n-1]>n)//如果最菜的那个人让所有人和他一组都干不好的话
    {
        cout << -1;//那就别干了!!!
        return 0;
    }

    for(int i=0;i<n-man[n-1];)//i要小于最大的一组的前端
    {
        ll next=i+man[i]-1;//先划到next这个地方
        //next必须比最大一组的前端要小 而且 从i到next人数不够第next号的需求
        //就继续更新next,让next更大
        while(next<n-man[n-1]&&next-i+1<man[next])
        {
            next=i+man[next]-1;
        }
        //next必须比最大一组的前端要小
        if(next>=n-man[n-1]) break;//不然就全并到最大一组去
        ans++;//乐队数增加
        i=next;//更新next
    }
    cout << ans;
}
/*
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣤⡀⣀⣠⣤⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⡀⢀⣴⣾⣷⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⣷⣾⣿⣷⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⣿⣿⣿⣿⣿⠿⠛⠛⠉⠉⠉⠉⠉⠉⠛⠻⠿⣿⣿⣿⣿⣿⣶⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢠⣾⣿⣿⣿⡿⠿⠛⠉⠉⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠿⣿⣿⣿⣷⣄⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⣀⣿⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⣰⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣠⣾⣿⣿⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣶⣄⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣻⣿⣿⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢹⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⠁⠈⢢⡀⠀⠀⠀⢸⡇⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⣿⡟⠒⢦⡀⠀⠀⠀
⠀⠀⣠⣤⣤⣼⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡇⠀⠀⠀⠉⢢⣄⠀⠀⢿⠊⠳⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣷⡄⠀⢷⠀⠀⠀
⠀⢰⠇⠀⣰⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⡌⣹⠗⠦⣬⣇⠀⠉⢢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⡀⢸⡄⠀⠀
⠀⡟⠀⣼⣯⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣆⢹⡀⠀⠀⠀⠉⠁⠀⠀⢀⣀⡁⠀⠀⠉⠳⢴⡆⠀⠀⠀⠀⠀⠀⢹⣧⠈⡇⠀⠀
⠀⡇⠀⠀⢻⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣾⠻⠉⠛⠂⠀⠀⠀⠀⠀⠀⠻⠿⣿⣿⣿⣶⣦⡀⠛⣇⠀⠀⠀⠀⠀⣈⣿⠀⡇⠀⠀
⢸⡇⠀⠀⢠⣿⣷⣦⣀⡸⣷⣦⣶⡂⠉⠉⠉⢁⣤⣶⡶⠀⠀⠀⣀⣀⡴⠀⠀⠀⠀⠀⠀⠈⠉⠉⠁⠀⡟⢀⣴⣟⣰⣾⣿⣏⣠⠇⠀⠀
⠈⡇⠀⠀⢸⣿⠁⠉⣿⠛⠛⠃⡇⠀⠀⢠⣶⣿⡿⠛⠁⠀⠀⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠼⢿⠟⠿⢿⡏⠀⠘⣿⡀⠀⠀⠀
⠀⢷⣀⣀⣿⠇⠀⠀⢿⡇⠀⢀⢱⡀⠀⠛⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⠀⠀⢸⠇⠀⠀⢹⣿⣄⠀⠀
⠀⠀⣉⣿⡏⠀⠀⠀⠀⠀⠀⢸⣇⣳⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡰⣿⠃⠀⠀⠀⠀⠀⠀⣿⠈⢧⠀
⠀⠘⣿⣿⠁⠀⠀⠀⠀⠀⠀⠘⣿⡛⣶⠀⠀⣠⠔⠒⠛⠒⠦⡀⠀⠀⠀⠀⣠⡤⠶⠤⢤⣀⠀⠀⠀⢀⣏⡄⠀⠀⠀⠀⠀⡀⣿⡆⠈⣧
⣠⡾⠛⣿⣿⣧⠀⠀⠀⠀⢸⣿⠾⢿⡿⠀⣰⠃⠀⠀⠀⠀⠀⢹⡄⠀⠀⡼⠁⠀⠀⠀⠀⠈⠙⣦⠀⢸⣿⡇⣾⣣⡀⠀⢰⣿⣿⣿⣤⠾
⡟⠀⠀⠻⣿⡟⢷⡄⣤⡀⠈⣿⡀⣸⠇⠀⠏⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⡇⢀⡀⠀⠀⠀⠀⢀⡟⠀⠀⠋⣿⣿⣿⡇⣠⣿⠿⠛⢷⡀⠀
⠀⠀⠀⠀⣿⣇⣨⣿⣿⣿⣦⣽⣷⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠃⠀⠙⠢⠤⠤⠴⢾⠀⠀⠀⠀⢸⣷⣿⣿⠟⠁⠀⠀⠈⣧⠀
⠀⠀⠀⠀⠈⠉⠉⠁⠈⠉⠈⢉⣿⡁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⠀⠀⠀⣿⠀
*/

全部评论

相关推荐

02-18 13:28
门头沟学院 Java
点赞 评论 收藏
分享
今天周一休息,突发奇想写一篇阶段总结。如题,我已经去了一个和Java彻底毫无关联的行业。曾经我以为自己能在计算机行业发光发热,没想到刚入行一年多就当了逃兵。从最开始的热爱到现在一看到代码就厌恶,不知道自己经历了什么。所以我去干什么了?答案是:在成都当了租房销售。上班那会压力大了就念叨着去干租房中介,但是一直下不去这个决心,想着自己学了四年多的计算机知识,终究还是不甘心。终于在某一天准备八股文的时候,看着无数篇和工作内容关系不大的理论知识,那一刻下定决心,决定尝试一下销售行业,也算是给自己一个交代。后面阴差阳错的投了成都自如去当租房管家,没想到面试很顺利,在当天一百多个面试的人里面,我成为了为数不多通过的几个幸运儿之一。目前已经培训通过,正式入职,也开了单,也有压力但是每天过得很开心,真心喜欢那种和人交流的感觉,哪怕是最后没有选择找我租房。说这些也是想告诉那些大三,大四正在找Java实习而焦虑的同学:你们现在还年轻,选择很多,容错率也很高,可以尽情去尝试自己喜欢的行业和工作。不用因为某一次的面试没通过或者简历石沉大海而焦虑,更不用因为身边人都在挤编程的独木桥就强迫自己跟风。也算是自己的碎碎念吧,也希望自己能在新的领域取得一点小成就。也祝牛油工作顺利!
许愿面试顺利的小白很...:ai来了,如果有天赋的话,销售真的是个很好的工作
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
正在热议
更多
# 长得好看会提高面试通过率吗? #
5080次浏览 51人参与
# 离家近房租贵VS离家远但房租低,怎么选 #
16943次浏览 137人参与
# MiniMax求职进展汇总 #
25403次浏览 323人参与
# 沪漂/北漂你觉得哪个更苦? #
1804次浏览 43人参与
# 你的实习产出是真实的还是包装的? #
3423次浏览 58人参与
# 春招至今,你的战绩如何? #
16628次浏览 150人参与
# 米连集团26产品管培生项目 #
7617次浏览 235人参与
# HR最不可信的一句话是__ #
1196次浏览 33人参与
# AI面会问哪些问题? #
1048次浏览 29人参与
# 你做过最难的笔试是哪家公司 #
1414次浏览 24人参与
# AI时代,哪个岗位还有“活路” #
3089次浏览 54人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152992次浏览 889人参与
# 简历第一个项目做什么 #
32246次浏览 367人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
8066次浏览 43人参与
# XX请雇我工作 #
51168次浏览 171人参与
# 简历中的项目经历要怎么写? #
311295次浏览 4282人参与
# 投格力的你,拿到offer了吗? #
178440次浏览 891人参与
# 你最满意的offer薪资是哪家公司? #
77039次浏览 375人参与
# AI时代,哪些岗位最容易被淘汰 #
65002次浏览 910人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187700次浏览 1123人参与
# 你怎么看待AI面试 #
181007次浏览 1337人参与
# 正在春招的你,也参与了去年秋招吗? #
364529次浏览 2642人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务