\(\text{Problem - 1793E - Codeforces}\) \(\text{*2600}\)

备注

2024.10.19 考试 T2。考场未能想出正解,找到性质但没有根据性质往 dp 方面想,而是想通过多枚举状态找最优解,需要反思!

简要题意

有一个数列 \(A\),我们需要将其分成若干组。对于一个 \(i\),若 \(i\) 所在的分组中元素个数大于等于 \(a_i\) 则有贡献,给出 \(q\) 次询问,求分成 \(x\) 组时最大贡献。

数据范围:\(2\le n,q\le3\times10^5,1\le a_i,x\le n\)。

题解

首先观察题目我们可以得出以下性质:

  1. 我们将 \(A\) 按 \(a_i\) 排序,选前面的一段满足条件肯定比后面的更优;(显然)
  2. 我们分组时将相邻的一段一起选一定不劣;

所以我们每次需要做的事其实就是选择一段前缀让它满足条件

我们先设 \(\operatorname{ans}_i\) 表示分成 \(i\) 组的最大贡献,但是想直接转移肯定不现实,经过尝试我们只能发现: \(\operatorname{ans}_i\) 具有单调性。

这时我们需要另外引入几个辅助函数,我们设 \(f_i\) 表示钦定第 \(i\) 个数对答案有贡献时最多能分多少组,因为对于 \(i\),我们需要将第 \(i-a_i+1\) 到第 \(i\) 个数分成一组,所以转移方程为:\(f_i=f_{i-a_i}+1\),但是若 \(a_i>i\),\(f_i\) 就无意义,这里需要注意。若 \(f_i\) 有意义,那么当前分的组数就为 \(f_i+n-i\) 组;否则组数为 \(n-a_i+1\)。

然后就能够求出 \(i\) 个有贡献时的答案,然后根据 \(\operatorname{ans}_i\) 单调性可以直接后缀取最大值,时间复杂度瓶颈在于排序,是 \(O(n\log n)\) 的,但是有人用桶排序 \(O(n)\) 更优。

代码

signed main(){
freopen("xcpc.in", "r", stdin);
freopen("xcpc.out", "w", stdout);
n = rd(), q = rd();
for(int i = 1; i <= n; ++i)a[i] = rd();
sort(a + 1, a + 1 + n);
for(int i = 1; i <= n; ++i){
if(a[i] <= i)f[i] = f[i - a[i]] + 1, g = f[i] + n - i;
else f[i] = 0, g = n - a[i] + 1;
f[i] = max(f[i], f[i - 1]);
ans[g] = i;
}
for(int i = n; i; --i)ans[i] = max(ans[i], ans[i + 1]);
for(int i = 1; i <= q; ++i){
int x = rd();
printf("%d ", ans[x]);
}
return 0;
}

CF1793E题解的更多相关文章

  1. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  2. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  3. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  4. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  5. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  6. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  7. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  8. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

  9. CF100965C题解..

    求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...

  10. JSOI2016R3 瞎BB题解

    题意请看absi大爷的blog http://absi2011.is-programmer.com/posts/200920.html http://absi2011.is-programmer.co ...

随机推荐

  1. 基于.NET WinForm开发的一款硬件及协议通讯工具

    前言 今天大姚给大家分享一款基于.NET WinForm开发的一款硬件及协议通讯工具:PLC-CommunTools. 项目介绍 PLC-CommunTools是一款基于.NET WinForm开发的 ...

  2. 在 VS Code 中可以免费使用 GitHub Copilot了!

    今天,有一个重大的好消息要分享给大家: 从现在开始,我们可以在 Visual Studio Code 中,免费使用强大的 GitHub Copilot 进行开发啦! 每个人都可以享受到 AI 加持下的 ...

  3. kubeadm init问题

    1.解析不到对应的主机 [WARNING Hostname]: hostname "k8s-master-01" could not be reached  [WARNING Ho ...

  4. java - 正则表达式替换Spring @RequestMapping URL中的@PathVariable值

    我在接口(只是为了保存常量)中有Spring MVC URL的定义,例如: String URL_X = "/my-url/{id:[0-9]*}"; String URL_Y = ...

  5. 关于在VMware中安装的CentOS7系统中无法安装ntp

    一.问题引言 今天在虚拟机中新安装了CentOS7,在使用yum命令时,出现如下如错误: 2.点击图片中链接,即是"2"中的红框,发现该链接竟不可达 3.于是开始找度娘,但并没有发 ...

  6. Qt编写物联网管理平台44-告警邮件转发

    一.前言 上一篇文章说的是告警短信发送,这种效率非常高,缺点也很明显,需要购买特定的短信硬件设备支持才行,而且每条短信都要收费,如果要求发送的短信数量特别多,这个费用常年累月下来也是不少的,客户就不愿 ...

  7. Qt编写地图综合应用33-雨量分布

    一.前言 雨量分布图是在区域地图基础上,针对区域中的每个最小单位区域比如县城点位不同颜色显示,最开始做这个封装的时候,并没有提供单独设置每个点颜色的接口,后面经过几个客户的强烈建议,咬咬牙把每个点都可 ...

  8. 为什么 .NET8线程池 容易引发线程饥饿

    一:背景 1. 讲故事 最近时间相对比较宽裕,多写点文章来充实社区吧,这篇文章主要还是来自于最近遇到的几例线程饥饿(Task.Result)引发的一系列的反思和总结,我觉得.NET8容易引发饥饿的原因 ...

  9. Selenium Python 问题汇总

    1. 在自动化打开浏览器后会长时间加载,此时使用如下命令解决: driver.set_page_load_timeout(20) # 设置浏览器超时加载时间 driver.set_script_tim ...

  10. Solution -「JZOJ #5457」项链

    \(\mathscr{Description}\)   Private link.   给定一条有 \(n\) 个点的圆环和 \(m\) 中颜色, 求在位置旋转, 位置翻转, 颜色旋转等价的意义下, ...