1 条题解
-
1
【题目大意】 给定一个 n,n 个整数,代表 n 套题,每一套题有一定数量的题目,小杨在第 k 天必须完成 k 道题,否则就偷懒,问小杨在偷懒前最多会做几天题?
【考纲知识点】 排序、数组、模拟
【解题思路】 先将 n 个数从小到大排序,第一重循环遍历每一天,利用一个变量 t 去遍历数组 n 套题,因为随着天数增大,每天做题数也逐渐增大,因此 t 只增不减。
【参考程序】
#include <bits/stdc++.h> using namespace std; const int N = 1e6 + 10; int n, a[N]; int ans, t; int main() { cin >> n; for (int i = 0; i < n; i++) cin >> a[i]; sort(a, a + n); for (int i = 1; i <= n; i++) { while (t < n) { if (a[t] >= i) { ans++; t++; break; } t++; } } cout << ans; return 0; }
- 1
信息
- ID
- 596
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 8
- 标签
- 递交数
- 1832
- 已通过
- 218
- 上传者