[Codeforces|[Codeforces Round #643]B. Young Explorers
题目链接:https://codeforces.com/contest/1355/problem/B
题意: 【[Codeforces|[Codeforces Round #643]B. Young Explorers】每人都有一个组团人数,值为 e i e_i ei?的人只能加入大于等于 e i e_i ei?个人的团,求最多能组成多少个团.
思路: 就是一个贪心,先从小到大排序,然后积累人数看是否大于 e i e_i ei?,如果大于则人数重新积累,否则积累人数+1;
具体看代码
代码:
#include
#include
#include
using namespace std;
int a[300010];
int main() {
int t, n;
cin >> t;
while (t--)
{
int ans = 0;
cin >> n;
for (int i = 0;
i < n;
i++)
cin >> a[i];
sort(a, a + n);
for (int i =0, cnt = 0;
i < n;
i++)
{
if (++cnt >= a[i])
{
cnt = 0;
ans++;
}
}
cout << ans << endl;
}
return 0;
}
推荐阅读
- RxSwift官方playground翻译
- 儿童学编程语言swift语言|儿童学编程语言swift语言 playgrounds12 嵌套模式
- 前端知识设置元素的背景
- codeforces B. Young Explorers
- codeforces C. Mere Array
- codeforces D. Omkar and Bed Wars
- codeforces C. Omkar and Waterslide
- codeforces B. Omkar and Infinity Clock
- codeforces B. Ternary Sequence
- Codeforces580|Codeforces580 D. Kefa and Dishes(状压dp)