Solution Set -「NOI Simu.」2022.07.21
\(\mathscr{Summary}\)
有意思的是, 难度诈骗居然在我身上打出了暴击.
(首先还是吐槽一下 \(5\text h\) 的模拟赛因为早读和早课变成 \(4\text h\) 这档事, 确实比较乱节奏.)
A 题签得挺快. B 被论文诈骗根本没有从过题角度思考. C 确实傻了, 感觉形式很想 Boruvka 就可劲儿编做法, 发现做不来可劲儿写 LCT, 最后得到了暴力 Kruskal 的乞丐分.
强制每到题用一个固定的时间思考满分算法或许是不错的选择. 毕竟不过几题垫底就稳了.
\(\mathscr{A\sim}\) 轻松的音乐
给定 \(\{p_n\},\{a_n\}\), 对于每个 \(i\), 其可以用一个区间覆盖 \([i-p_i,i)\) 或者 \((i,i+p_i]\), 求未必覆盖的 \(a\) 之和的最小值.
\(n\le5\times10^4\), \(m:=\max\{p_i\}\le30\).
考场上一眼的 \(\mathcal O(nm^2)\): 令 \(f(i,j,k)\) 表示考虑了 \(1..i\) 的区间, 假设 \((i-j,i]\) 被后面的区间覆盖, 当前覆盖到 \([i,i+k)\) 时的最小和. 转移很简单.
这个算法慢在完全用 DP 进行策略优化, 事实上可以加入一些底层贪心. 令 \(f(i,j)\) 表示考虑了前 \(i\) 个区间, 覆盖到 \(j\) 的最小和. 仍然是讨论 \(i\) 区间的方向, 简单处理一下转移可以做到 \(\mathcal O(nm)\).
\(\mathscr{B}\sim\) 论文题
给定 \(\{a_n\}\), 初始有 \(a_i\) 个颜色为 \(i\) 的球. 每一时刻在所有球中均匀随机两个不同且有序的球 \(x,y\), 将 \(x\) 的颜色变为 \(y\) 的颜色. 求所有球同色时的期望时刻. 答案模 \((10^9+7)\).
\(n\le2.5\times10^3\), \(m:=\max\{a_i\}\le10^5\).
Tags:「A.DP-概率/期望 DP」「B.Tricks」
法一 上势能. 设 \(A\) 为一个局面下颜色的出现次数集合, 定义
\]
这里做出了把势能摊到每种颜色上的初步转化. 令常数 \(s=\sum_{a\in A}a\), 考虑一次操作得到的 \(A^*\):
\]
我们自然希望 \(\Phi(A^*)=\Phi(A)-1\). 为了研究 \(\varphi\) 而不是 \(\Phi\), 可以把常数 \(-1\) 正比于 \(a\) 地摊到每个 \(\varphi(a)\) 上, 然后令变化前后对应的 \(\varphi\) 值两两相等. 化简后得到:
\]
这个还是比较好算. 引入差分 \(\delta(a)=\varphi(a)-\varphi(a-1)\), 则:
\]
我们得到了递推势能的方法. 对于终结状态 \(A_t=\{s\}\),
\]
最终 \(\Phi(A_0)-\Phi(A_t)\) 就是答案了. 线性求逆元可以做到 \(\mathcal O(n+m)\).
对于势能法奏效的数理基础, 可以参考 21 年论文《鞅与一类关于停时的概率与期望问题》.
法二 更加机械化的做法. 还是设 \(s=\sum a_i\), 令 \(f(x)\) 表示最初有 \(x\) 个球拥有被钦定的最终颜色时, 所有球都变成这一颜色的期望时刻 (钦定失败则令时刻为 \(0\)), 那么
0 & x=0\lor x=s\\
\frac{x(x-1)+(s-x)(s-x-1)}{s(s-1)}f(x)+\frac{x(s-x)}{s(s-1)}(f(x-1)+f(x+1))+1, & \text{otherwise}
\end{cases}.
\]
然后和法一一样初等地算一算就行.
\(\mathscr{C}\sim\) 最小生成树
给定 \(\{a_n\}\) 和边集 \(E=\{(u,v,w)_m\}\), 进行 \(q\) 次修改, 每次令 \(a_x\gets y\), 随后求出 \(G=([0..n],E\cup\{(0,i,a_i)\}_{i=1}^n)\) 的 MST 边权和.
\(n,m,q\le3\times10^5\).
Tags:「A.图论-生成树」「B.Tricks」
在 \(E\) 中加入足量 \(+\infty\) 边使其能让 \(G\) 连通. 取 \(E\) 构成的 MST, 维护出 Kruskal 算法的等效链 (树转链, 两个图上 Kruskal 的表现相同).
现在只需要对于链求答案. 线段树维护区间上一个 \(f(0/1,0/1)\) 信息, 表示区间左侧连通块是否与 \(0\) 连通, 右侧连通块是否与 \(0\) 连通, 此时的最小代价. \(\mathcal O((n+m)\log (n+m)+q\log n)\).
Solution Set -「NOI Simu.」2022.07.21的更多相关文章
- Solution Set -「ARC 107」
「ARC 107A」Simple Math Link. 答案为: \[\frac{a(a+1)\cdot b(b+1)\cdot c(c+1)}{8} \] 「ARC 107B」Quadrup ...
- Solution -「NOI 2021」「洛谷 P7740」机器人游戏
\(\mathcal{Description}\) Link. 自己去读题面叭~ \(\mathcal{Solution}\) 首先,参悟[样例解释 #2].一种暴力的思路即为钦定集合 \ ...
- Solution -「NOI 2020」「洛谷 P6776」超现实树
\(\mathcal{Description}\) Link. 对于非空二叉树 \(T\),定义 \(\operatorname{grow}(T)\) 为所有能通过若干次"替换 \( ...
- Solution -「NOI 2016」「洛谷 P1587」循环之美
\(\mathcal{Description}\) Link. 给定 \(n,m,k\),求 \(x\in [1,n]\cap\mathbb N,y\in [1,m]\cap \mathbb ...
- Solution -「NOI 2012」「洛谷 P2050」美食节
\(\mathcal{Description}\) Link. 美食节提供 \(n\) 种菜品,第 \(i\) 种的需求量是 \(p_i\),菜品由 \(m\) 个厨师负责制作,第 \(j\) ...
- Solution -「NOI 2008」「洛谷 P3980」志愿者招募
\(\mathcal{Description}\) Link. 一项持续 \(n\) 天的任务,第 \(i\) 天需要至少 \(a_i\) 人工作.还有 \(m\) 种雇佣方式,第 \(i\) ...
- Solution -「NOI 2018」「洛谷 P4768」归程
\(\mathcal{Description}\) Link. 给定一个 \(n\) 个点 \(m\) 条边的无向连通图,边形如 \((u,v,l,a)\).每次询问给出 \(u,p\),回答 ...
- Diary -「NOI 2021」酱油记
雨幕浓稠 远近一白 是水雾弥漫的天 还是泡沫撑起的海 雨真大呢. 前几天去 ZH 中学集训没啥好记的,就从会合日开始叭. [Day -1] 逃出 ZH,掉入梦麟.( 高中的同学们忘记带 ...
- 「BZOJ 2434」「NOI 2011」阿狸的打字机「AC自动机」
题意 有一个打字机,支持三种操作: 字符串末尾加一个小写字母 字符串末尾减一个字符 输出这个字符串 经过不超过\(n\)次操作后有\(m\)组询问:\((x,y)\),表示第\(x\)次输出第字符串在 ...
- 「BZOJ 3242」「NOI 2013」快餐店「基环树」
题意 基环树上找到一个点(可以在边上)使得它到树上最远点的距离最小,输出最小距离 题解 如果是一棵树,答案就是树的直径\(/2\) 如果是基环树,那么很好证明删去环上的某一条边是不影响答案的.于是断环 ...
随机推荐
- 修改Linux服务的文件打开句柄数
在bash中,有个ulimit命令,提供了对shell及该shell启动的进程的可用资源控制.主要包括打开文件描述符数量.用户的最大进程数量.coredump文件的大小等. 在centos 5/6 等 ...
- Multi-Patch Prediction Adapting LLMs for Time Series Representation Learning
这篇论文是出自2024ICML的一篇论文,作者成功将大语言模型应用到时序模型之中,并在时序领域取得了很好的效果,不仅如此,作者还设置了多种下游任务,从论文结果得知,作者的模型在下游任务处都取得了很好的 ...
- 强化学习算法——TPG算法(遗传编程GP算法)代码
tpg算法是一个使用模块涌现和复用机制的遗传编程(GP)算法,该算法在一些强化学习问题上有着不错的表现,本文给出该算法的项目地址. tpg算法的C++实现代码大概有1万的逻辑代码,如果这个比例换做使用 ...
- 网站安全,为什么老外如此钟爱国产 WAF?
大家好,我是长亭雷池 WAF 社区的开发者,这段时间一直在忙着搞雷池国际版,前后搞了两三个月,总算初步有了一些收获,写个帖子和大家分享一下. 雷池 WAF 社区版 雷池 WAF 社区版是由长亭科技打造 ...
- C++之OpenCV入门到提高005:005 图像操作
一.介绍 今天是这个系列<C++之 Opencv 入门到提高>得第五篇文章.这篇文章也不难,介绍如何图像的基本操作,比如:读取一张图片的像素值,如何修改一张图片中的像素值,如何读取一张图片 ...
- 零基础入门Hadoop:IntelliJ IDEA远程连接服务器中Hadoop运行WordCount
今天我们来聊一聊大数据,作为一个Hadoop的新手,我也并不敢深入探讨复杂的底层原理.因此,这篇文章的重点更多是从实际操作和入门实践的角度出发,带领大家一起了解大数据应用的基本过程.我们将通过一个经典 ...
- WebUI自动化框架-playwright
(持续更新) 一.环境准备 安装playwright:playwright是基于python3.7开发的第三方包,所以需要使用的python版本是3.7及其以上的 pip install playwr ...
- CSP2023总结
CSP2023总结 入门组 比赛开始时,顺序开题. 看完 \(T1\) 后没有立即想出正确解法,有点慌乱,看完 \(T2,T3\) 并思考了一会后过去了大概 \(20\) 分钟,想到了解法便看 \(T ...
- CommonsCollections1(基于ysoserial)
准备环境 JDK1.7(7u80).commons-collections(3.x 4.x均可这里使用3.2版本) JDK:https://repo.huaweicloud.com/java/jdk/ ...
- php生成树状层级子孙树-迭代篇
关于简单的方式获取树状层级子孙树的方案我已经写过了,在这里,当时是用简单的递归实现的,但是现在回头想想,如果层级很多,数据也很多,用递归感觉还是会不稳妥,这就有必要想办法转换为迭代来实现了. 以下是迭 ...