MnZn求调刚才CF的E
  • 板块学术版
  • 楼主__Seniorious__
  • 当前回复5
  • 已保存回复5
  • 发布时间2023/2/12 18:45
  • 上次更新2023/10/24 00:57:20
查看原帖
MnZn求调刚才CF的E
333119
__Seniorious__楼主2023/2/12 18:45

rt,码如下:

#include <bits/stdc++.h>
using namespace std;
int _, n, a[300010], k[300010], ans[300010], mx[300010];
int l;
int main() {
    scanf("%d", &n);
    for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
    sort(a + 1, a + 1 + n);
    for (int i = 1; i <= n; i++) k[i] = i >= a[i] ? mx[i - a[i]] + 1 : 0,
                                 mx[i] = max(mx[i - 1], k[i]), k[i] ? ans[k[i] + n - i] = i : 1;
    for (int i = n - 1; i; i--) ans[i] = max(ans[i], ans[i + 1]);
    scanf("%d", &n);
    while (n--) {
        scanf("%d", &l);
        printf("%d\n", ans[l]);
    }
    return 0;
}

评测记录WA on pretest6,思路是给人分段,kik_i表示以第i个人结尾的段最多能看kik_i本书,mx类似k但是第i个人不用看,ans表示看i本书最多的满足人数

希望大佬帮忙调,或者证明思路假了

2023/2/12 18:45
加载中...