首页 > 其他分享 >【题解】ARC139D Priority Queue 2

【题解】ARC139D Priority Queue 2

时间:2022-09-22 18:25:48浏览次数:67  
标签:limits cdot 题解 sum 个数 贡献 Priority leq ARC139D

思路来源

题意

假设初始时有一个长度为 \(N\),值域为 \(M\) 的数组 \(A\)。现在要进行 \(K\) 次操作,每次操作从 \([1, M]\) 中选取一个数,并将其加入 \(A\) 中。单次操作完成后对 \(A\) 按升序排序,然后将第 \(X\) 大的元素删除。对于 \(M^K\) 种可能的操作序列,求 \(\sum\limits_{i = 1}^n A_i\) 的和。答案对 \(998244353\) 取模。

\(N, M, K \leq 2 \times 10^3, 1 \leq X \leq N + 1\)

思路

带玄学神仙计数。

首先会发现操作实际上等价于每次不删除第 \(X\) 小的元素,然后对于最终得到的长度为 \(N + K\) 的序列保留:

  1. 前 \(X - 1\) 小的数

  2. 后 \(N - X + 1\) 大的数

并且求这两种情况的贡献是等价的问题,于是我们考虑解决其中一种,另一种类比即可。这里以求前 \(X - 1\) 小的贡献为例。

假设最终序列中第 \(X\) 小的数为 \(v\),初始时 \(A\) 中小于 \(v\) 的元素有 \(a\) 个,大于 \(v\) 的元素有 \(b\) 个。那么在加入的 \(K\) 个数中:

  1. 小于 \(v\) 的数不超过 \((X - 1) - a\) 个

  2. 大于 \(v\) 的数不超过 \(K - (X - a - b)\) 个,即 \(K + a + b - X\) 个

不妨枚举 \(i, j\) 分别表示小于 \(v\) 的数的个数和大于的个数。考虑当加入的 \(K\) 个数中有 \(i\) 个数小于 \(v\) 时,大于 \(v\) 的数的取值方法 \(C_i\):

\(C_i = \sum\limits_{j = 0}^{K + a + b - X} C_{K - i}^{j} \cdot (M - v)^{j}\)

注意到上式的变化仅与 \(i\) 有关,于是可以 \(O(K)\) 求。

那么前 \(X - 1\) 个数的贡献为:

  1. 小于 \(v\) 的数,贡献之和为 \(\sum\limits_{i = 0}^{X - 1 - a} C_K^i \cdot C_i \cdot f_{v - 1, i}\)
    其中 \(f_{v - 1, i} = (v - 1)^{i - 1} \cdot \frac{v(v - 1)}{2}\),即第 \(i\) 位取 \([1, m]\) 时对答案的贡献之和。

  2. 等于 \(v\) 的数,贡献之和为 \(\sum\limits_{i = 0}^{X - 1 - a} C_K^i \cdot C_i \cdot [v \cdot (X - 1 - i)]\)

枚举 \(v\) 求贡献和即可。

后 \(N - X + 1\) 大的数的贡献同理。

时间复杂度 \(O(MK)\)

标签:limits,cdot,题解,sum,个数,贡献,Priority,leq,ARC139D
From: https://www.cnblogs.com/lingspace/p/arc139d.html

相关文章

  • 牛客题解 Channels
    链接:https://ac.nowcoder.com/acm/problem/201606来源:牛客网题解作者岛田小雅要求一段区间内的有效时间总和,第一反应用前缀和。要求\(l\)和\(r\)之间有效时间的和......
  • CF1446D1 题解
    传送门题意给定序列\(a_1,a_2,...,a_n\),求最长的满足区间众数有至少两种的区间长度。\(n≤2×10^5,1≤a_i≤min(100,n)\)题解首先,若整个序列有至少两种众数,则答案为......
  • 题解【CF1307F Cow and Vacation】
    感觉CF*3300的难度没有这么简单吧(题目传送门。考虑\(\texttt{Bessie}\)运动的过程:起点\(\to\)休息点$\to$\(\cdots\)\(\to\)休息点\(\to\)终点。考虑我们......
  • 2 つの山札题解
    题目链接题意简述:给定两个长度为\(n\)的排列\(A\)和\(B\),按照一下方式生成一个长度为\(2n-2\)的序列:你对每一个排列分别做\(n-1\)次操作,每一次选择一个序列进行......
  • 题解 P7839 「Wdoi-3」夜雀 singing (思路非常好的一道题)
    代码细节非常多的一道题。这里只说思想了先。首先,找到那些安全树。所有的乌鸦最后一定会到达某一棵安全树上。因此,对于每只乌鸦,分别向左和向右暴力寻找,看是否可到达安全......
  • FCKEditor粘贴word图片问题解决
    ​ 当前功能基于PHP,其它语言流程大致相同 1.新增上传wordjson配置在ueditor\php\config.json中新增如下配置:     /* 上传word配置 */    "wordAction......
  • IDE//VS//VS2017,VS2019没有代码提示的问题解决
    IDE//VS//VS2017,VS2019没有代码提示的问题解决小小菜鸡于2022-07-2815:24:44发布235 收藏文章标签:idec++visualstudio版权开始菜单-->所有程序–>VisualStudi......
  • 牛客题解 卡牌游戏
    链接:https://ac.nowcoder.com/acm/problem/19777来源:牛客网题解作者岛田小雅在这里先贴一下OIWiki上期望的定义。根据期望的定义和题意,我们可以这样去思考这道高......
  • Mac系统用Maven本地引入jar包报错问题解决
    打包命令mvninstall:install-file-Dfile=/Users/用户名/tool/selenium-server-standalone-3.9.1.jar-DgroupId=org.selenium-DartifactId=selenium-server-standalone......
  • CSP-S模拟6 题解
    开个坑,今后我要写题解了!A.玩水挺有趣的一道题,我们首先从\(2\)条路径的情况考虑符合答案的路径一定满足这种格式:两条路径先重合,再分开,最后再重合观察一下,注意到第一......