「Log」2023.12.4 小记

序幕

今天是国家宪法日。

\(\text{6:40}\):准时到校,整理博客。

今天真的是不怎么冷呢。

上午还是先刷刷杂题,随机开题。

假串串题。

考虑线段树维护哈希,每个节点维护区间子串哈希值,解决了单点修改的问题。

匹配是不正确的,于是乎不会了。

这个东西复杂度貌似也是假的。

看题解。

原来忽略了一些重要信息……

首先串 \(e\) 长度不超过 \(10\),其次字符集大小只有 \(4\)

\(\color{blueviolet}{CF827C}\)

好题。

\(1 \le |e| \le 10,|\sum| = 4\),考虑从这几点下手。

首先每个字符可以分开考虑,然后对于每个长度,每个匹配的字符位置开一个树状数组。

本质上是判断同余位置的字符相等个数,也就是对于每种字符,每个模数,每个余数开一个树状数组,总计 \(400\) 个,空间允许。

\(\color{blueviolet}{CF842E}\)

简单题。

先最小生成树一下,分别考虑树边与非树边的答案,设一个边为 \((u, v, w)\)

非树边的答案是平凡的,即树上 \(u, v\) 路径上边权取最大值再减一。

树边的答案考虑增大到某一时刻一定会被某条较小的非树边取代,所以考虑非树边从大到小路径覆盖即可(取最小值减一)。

特别地,某条边没被覆盖到那也就是必选边,答案为 \(-1\)

间幕 \(1\)

午休是美好的。

不饿所以没咋吃饭,吃完饭把四月补完了,评价是神仙番。

没有疲倦感,于是接着开题,感觉是没啥水平的简单分讨。

\(\color{blueviolet}{CF832D}\)

细节还是有点水平的。

对于一个询问枚举三种情况是显著的,设 \(x, u, v\) 三点表示重复点与令两点。

对于 \(u, v\)\(x\) 子树内或不在的情况进行分类处理。特别地,两者都不在的时候考虑 \(LCA(x, u)\)\(LCA(x, v)\) 是否相等,剩下的是平凡的。

\(\color{blueviolet}{CF842E}\)

神仙题。

主要用到一个性质,多条直径一定至少交于一点或一条边。

考虑一个交点,将直径分为两段,这两段长度可能一样可能不一样(与直径长度奇偶性相关),只需考虑不一样的情况。

设两段端点集合为 \(s1, s2\),每次加入一个点 \(i\),跟两集合内任意一点求距离设为 \(d_1, d_2\)。若 \(d_1, d_2\) 其中一个能更新直径,以 \(d_1\) 为例,那么 \(s_2\) 中的点可能失效,考虑其不失效的充要条件为 \(dis(x, i) = d_1\) 其中 \(x \in s_2\),现在这样的点符合 \(s_1\) 的条件,加入 \(s_1\) 即可,然后清空 \(s_2\)

每次模拟上述过程,输出两集合大小之和即可。

\(\color{blueviolet}{CF838D}\)

更加神仙的题!

考虑所有情况中合法的概率,假设每个人随机指定位置随机走,将 \(1 \sim n + 1\) 连成环,其中 \(n + 1\) 是增加的位置,此位置是起点,若绕一圈并占据了此节点说明此方案不合法。

结论是所有位置等价,所以占据 \(n + 1\) 的概率为 \(\frac{m}{n + 1}\),合法概率即 \(\frac{n + 1 - m}{n + 1}\),乘以总方案数 \(2 ^ m (n + 1) ^ m\) 即答案。

结论不知道怎么证明,但感性理解挺正确的。

间幕 \(2\)

忘了什么时候吃的晚饭了。

晚饭后摆了一会,挑不到想写的题,被推荐了一道神仙交互。

思考无果,主要限制次数太神秘了,没什么思路。

看题解,果然很神秘。

思路大体上是不断扩充最优前缀同时进行剪枝。

\(\color{black}{CF1466I}\)

考虑用队列维护最优前缀,每次加入一个数并尝试扩展一位,不优就舍掉。

下一步从队尾向队首计算,不优就弹掉整个队列后缀。

第一步计算是冗余的,不必判断是否相等,因为在第二步会处理劣解。

用 string 以及内置函数可以大大减小实现难度。

尾声

瓶颈期好难受,写博客复习罢。

posted @ 2023-12-04 22:56  Eon_Sky  阅读(5)  评论(0编辑  收藏  举报