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