2024-2 七年级思维训练2.28

已结束 ACM/ICPC 开始于: 2024-2-28 18:45 2 小时 主持人: 13

题解

Boring Apartments

我们可以定义按i,ii,iii,iiii为一轮也就是按10次
假设当前数字是xxx,那么首先要按(x-1)轮
接下来要按x,xx,xxx。这样就把问题分为了两个阶段,思路清晰代码就简短。

Yet Another Bookshelf

显然最左边的1和最右边的1之间有几个0就需要推几次

Young Explorers

对于经验不足程度为ei的人,他会优先找<=ei的人。
对于贪心问题只要能想清楚优先顺序很多题都会迎刃而解。
我们假设last代表经验值不足程度<ei,且没有被用过的人。
mp[ei]代表经验不足程度为ei的人数,ei的贡献值为
(mp[ei]+last)/ei;
新的last=(mp[ei]+last)%ei

        int n;cin>>n;
        map<int,int>mp;
        for(int i=1;i<=n;i++){
            cin>>a[i];
            mp[a[i]]++;
        }
        int ans=0;
        int last=0;
        for(auto it=mp.begin();it!=mp.end();it++){
            ans+=(it->second+last)/it->first;
            last=(it->second+last)%it->first;
        }
        cout<<ans<<endl;
状态
已结束
规则
ACM/ICPC
题目
3
开始于
2024-2-28 18:45
结束于
2024-2-28 20:45
持续时间
2 小时
主持人
参赛人数
13