杂题记录

  • Paw 不难发现最终的局面大概是 <<...>>,此时中间是确定的。那么考虑对于前 i 个空,形成 <<< 的局面,并且不影响后面的概率。发现有 2n 种操作,只有一种不可取,那么 fi=fi1(112n),最后求和即可。

  • Squid Game 值得注意的是这很树形 DP。将链分为直链和曲链,发现只用选根节点就可以覆盖所有曲链,也就是答案至多增加 1,那么先考虑处理直链。发现直链的关键点在 x 下面一个,考虑有没有必要选他。先假定不选,那么答案自然是 fy。然而如果是关键点,一种可能的情况是选 x 覆盖,顺便也就覆盖了经过 x 的那些链,那么需要用 maxfspci+1 来更新答案。最后呢,对于曲链 (x,y),还需要利用 fx+fy+1 对答案取个 max,因为爱情。

  • [AGC045B] 这里讲一下二分的做法。

其实看到这道题的第一眼就应该想到二分,但是这个 check 比较麻烦。

01 看作网格在上下,我们手模一下可能的路径,发现一定是一个区间的奇数或者偶数位置。

这是样例 0??0 的图。

现在我们需要将路径限制在一个大小为 mid 的区间内,看是否有合法路径,这很抽象,因为上下限会随着路径而改变。但是有个十分新奇的思路,我们设置 mid 个起点,限制在一个 mid 的长条内。

这是当 mid=3 时的三条路径。

如果将三者重叠,我们会发现每一列的合法位置是一个区间:

那么我们二分的时候维护这个区间即可,但是此时我们发现样例过不去。

对于 0??0k=1 时,如果单纯的维护上下界会存在如下情况:

红色为实际的合法路径,但是我们会将黑色的两个点都覆盖进去。回顾 可能的路径,发现一定是一个区间的奇数或者偶数位置,那么我们可以将奇偶位置分开考虑,这样如果越过边界,那么利用 ±2 来修正即可。

代码非常简单:https://atcoder.jp/contests/agc045/submissions/49005863

  • # [ARC154E] Reverse and Inversion 非常好题目,经过一番神秘的推导变换,我们将式子变为了 i2iPi 的期望。由于 Pi 的期望很难求,考虑求 x 所在位置的期望。一个关键的考虑是如果 x 被任意操作覆盖后,期望所在的位置为 n+12。否则位置不变。随便计算一下,那么就搞定了。
  • # Mother of Dragons 大概是说先利用神秘的变换使得问题转化为求最大团。接下来就可以乱搞了……考虑状压,实际上有用的状态只有 O(2n2) 个,记忆化即可做到正确的复杂度。然而状压怎么做?考虑状态 S,随便考虑一个点 x,一种可能是这个点不在点集内,那么就是 Sx。另一种考虑是这个点在,那么 S 只能和 x 能到的点集取交,于是就从 S&Ex 转移即可。
  • # Cheap Robot 很像 刀言刀语 这道题,进行多源 djk,然后建一颗最小生成树即可。
  • # Frequency Problem (Hard Version) 非常抽象题,与出现次数相关,应该和根号相关。一个关键的结论是必须包含全局众数,否则一定可以继续扩展当前的区间直到全局众数为众数。然后我们来玩根号分治,对于出现次数 >n 的数,可以 O(n) 暴力的做,并且这是简单的。但是对于 n 的数呢,考虑出现次数是 O(n) 级别的,我们可以枚举全局众数的出现次数,利用滑动窗口来求解。至于会不会遗漏答案呢,考虑滑动窗口不会向后移动,那么可能出现的情况如图在枚举的次数 =2 时会遗漏答案。,而这可能发生,当存在一个非众数在某一段密度很大,但是此时全局众数密度很小,或者反过来也是。但是此时,我们一定可以将区间向外扩展,也就是忽略的情况比答案劣。所以不会遗漏答案。
  • # Permutation for Burenka 发现两个序列类似,当且仅当两者的笛卡尔树同构。于是同构吧,发现每个结点合法的值都是一个区间,并且答案的值也是一个区间。相当于现在有一些区间和一些点,用这些点来覆盖这些区间,求剩下的至少/至多为多大。这是简单的贪心。但是注意判断无解的情况。
  • # [ARC135D] Add to Square 离谱的构造,看到方格,想想黑白染色,顺便也就将黑白的正负号逆转一下,那么发现操作后行列和不会变化。可以得到两个矩阵可以相互转化当且仅当行列和全等。那么开始构造,如果行列符号相同,那么随便放一个绝对值小的就可以消掉一行。接下来如果行列符号不同,那么我们只在行间或者列间平衡即可。这样可以构造出下届 max(|Sxi|,|Syi|)
  • # [ARC149E] Sliding Window Sort 非常好题目。首先发现的是如果 K>NM+1,那么后面的操作都只是让 前 NM+1 小数循环位移,将这些数提出来单独位移一下就可以得到 K=NM+1 时的序列。当 K<NM+1 时,我们只需要将后面没有用到的数都删掉,离散化一下有变成了 K=NM+1 时的请况。问题简化了,来啃硬骨头。发现如果存在一个 Ai 前面有 Aj>Ai,那么 Ai 就不能在前面存在,反之,Ai 可以存在在长为 M 的区间中,任意位置,那么方案即使剩下的 NM+1 个数的前缀最大值的个数幂次 m。不过最大的 M1 个数任意填,那么需要有一个 (m1)! 的系数。
  • # [ARC156F] Make Same Set 非常好题目,对于网络流的抽象理解又抽象了很多。考虑单纯的网络流只能解决可以不选的情况。但是如果我们在开始,在网络流上就强制了所有能选 A 的选 A,得出的答案就会是正确的,考虑为什么。 这是可能建出来的图,考虑一个都不选的路径,大概就是说对应的路径都没有流,也就是存在一条流曲折流过来将流给堵住了,使得这个点都不选,但是在此之前,这条路是存在流的。也就是只有非最短路流才会导致这个情况。那么利用 dinic,每次沿着最短路走,就不会有这个问题。
posted @   jeefy  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示