9.21 小记
9.21 模拟赛
T1 是个普普通通的线段树。额就小白逛公园那思路。线段树上多维护几个信息,然后左右子树合并就行了 原题
T2 也不难,就大力分类讨论就行了。(那你还调了那么久 (╯▔皿▔)╯ 原题
T3 是个有趣的树上概率 DP ,它并不是树上高斯消元 原题
设 为从 走到它父亲的期望步数。
第一项代表直接向他父亲走,第二项代表先向他儿子走,再往回走
就是个可求的东西了
然后我们设 为从 的父亲走向 的期望步数
第一项就是直接向下走,第二项是先向兄弟走,再返回向自己走,第三项就是先向爷爷那里走,再向下走
然后像上面一样化简
然后考虑每条边能做出的贡献。其实就是
除以一个 n 就是考虑每个点被选中的概率。
T4 就是个二维数点,因为光顾着调 T2 了都没时间看 link
就是可以考虑对于每个询问,它给出的一堆点会将整个数轴分成若干段,然后如果一条线段被分出的区间包含,那他就是不行的。然后你可以离线,然后对分出的区间按照左端点排序,然后把所有左端大于等于这个左端点的线段的右端点扔进树状数组(有点抽象,参考二维数点),然后顺便在树状数组里查
[COCI2019-2020#4] Spiderman
首先,小于 的值是不可能给别的 贡献答案的,理由还挺显然的。
然后我们对于每个被除数减掉 ,然后就相当于求能整除的个数。我们可以用埃筛来处理
需要注意的是当 时,一个数可能给自己做出贡献所以要删掉。
然后是把相同的数压到一起会显著减小常数(Zpair 给我开大时限了所以我没改)
[COCI2019-2020#4] Holding
最给人提示的是 的部分分。
对于这个部分分,我们可以设 表示只在 和 的范围内进行交换,花费为 的最大能够减少的负债。
如果当前的 和 交换,那么
如果现在他们不交换,那么
那么我们现在考虑 的部分。
我们可以仿照上面的做法,设 为只在 和 之间交换,花费为 的最大能够减少的负债。
转移方式和上面 的转移是一样的,就不用我多说了吧 QAQ
然后求出这两个数组之后我们需要分别求出前缀的最大值,然后枚举从 中从哪里开始跟左边交换,从哪里开始跟右边交换,并且枚举两边的最大花费,然后把 拼在一起取最大值,然后和 之间的数的和一减就完事了
[COCI2019-2020#4] Nivelle
哇复制一下就直接有 link 了诶
我们可以枚举出现的颜色种类数,然后二分长度,找到可行的最长长度,二分的过程中用滑动窗口维护区间的颜色种类数。
废话
但是模拟赛只能说比前几次状态好了点,但不多
嗯,如果题目比较麻烦的话我可能会自乱阵脚的吧。这不是什么好事吧。
不过我 T2 调出来了,要是调不出来就又是没好的一天。
喵,喵,喵
无法明辨的歉意 抽离思绪的彼方
未曾感知心绪 如梦似影玩笑般谢场
早已厌倦暗于 幕帘之下疮痍的假象
庆幸终末旅程 只我一人掩饰着怯场
请 放任所有不知情者未命名辞章
飘散零落书签 浸透沾满泪水的脸庞
本文作者:cc0000
本文链接:https://www.cnblogs.com/cc0000/p/16725658.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步