【题单】zsh

CF1762D GCD Queries

增量维护。

CF2196F Indivisible

先考虑若有一个度数序列如何构造一张图。
考虑当前度数最大的点 \(u\),他需要 \(a_u\) 个度,那么直接找到前 \(2\sim 1+a_u\) 大的 \(a_v\),连边 \((u,v)\) 一定最优。

\(n\) 是奇数,考虑均匀地分度数。具体地,设 \(2m=qn+r\),放 \((n-r)\times[q]+r\times [q+1]\)
考虑何时不合法:方程 \(aq+b(q+1)=m\) 有解,其中 \(a\in [0,n-r],b\in[0,r]\),这里假设 \(a+b\) 是较小的点集,故有 \(a+b<\frac{n}{2}\)
变形:\(q(n-2a-2b)=2b-r\)\(n-2a-2b>0\),所以 \(q\le 2b-r\le r\)\(q>r\) 无解。
\((q+1)(n-2a-2b)=n-2a-r\),同理可得 \(q+1\le n-2a-r\),有 \(r+q< n\)
如果 \((n-2)(n-3)\ge 2m\) 就让 \(n\leftarrow n-2\),然后就满足 \(n(n-1)\ge 2m>(n-2)(n-3)\)。得到 \(q\in [n-5,n-1]\)
发现大部分情况都是合法的,除了 \(m\in \{1,2,4,6\}\)。而 \(m=12\) 需要构造 \(\deg=\{3,3,3,5,5,5\}\)

\(n\) 是偶数,考虑去掉一个点,构造奇数的情况。
只有 \(2m>(n-1)(n-2)\) 是需要处理的,\(\color{Red}\mathtt{\Gamma}\) 不会了。

CF2124G Maximise Sum

对于某个 \(x\) 的答案,考虑这个 \(i,j\) 对的大小越大越好,这样可以贡献到更多的 \(x\)
基本性质:\(i\) 是前缀最小值,\(j\) 是后缀最大值。

  • \(a_i+a_j>a_p\),其中 \(a_p\) 是上一个前缀最小值。
    • 此时我们保留最大的 \(j\) 即可。
  • \(a_i+a_j\le a_p\),发现如果 \(a_i+a_j=a_{i'}+a_{j'}\),一定有包含关系,那么可以只保留一个。所以 \(a_i+a_j\) 互不相同,所以只有 \(O(n)\) 个。

现在只要对于 \(O(n)\)\((i,j)\) 对处理答案,容易维护。

CF1364E X-OR

找到 0 就可以通过 \(n-1\) 次找出排列。
0 可以增量维护,唯一的问题是 \(p_x\) 不是 0 要问一次 \(p_y|p_i\)
由于不是自适应,可以 shuffle 后问就没问题了。
最后检查哪个是 0 就随机几个数问一下。

CF2096G Wonderful Guessing Game

三进制分组,如果这个前一半后一半是我们自己定的那么可以问 \(S_0+S_1\),在 \(S_2\) 中就是返回 N
再问一次按照 \(\mathrm{pop}(x)\bmod 3\) 分组的,这样可以得到缺失位的信息。

现在处理 \(|S_0|,|S_1|,|S_2|\) 差距过大的问题,考虑分治重编码,这样每一位变成每一层中作为第几个儿子。
至少有两个集合大小相同,那么问他们两个就好了。(证明可以分讨一下?)

CF1887E Good Colorings

可以行列转二分图,每次可以给两个点之间加上一条边,最后要找到一个四元环满足边都是不同色的。

初始边数和点数相等,所以一定有一个环,且颜色都不相同。
那么每次在环上二分加边,把颜色相同的那一侧丢掉。

CF2006F Dora's Paint

考虑行列转二分图,若 \((x,y)\) 是 1 就连边 \(y'\to x\),是 2 就连边 \(x\to y'\)
拓扑序是一个合法的删除顺序。
那么美丽度就是拓扑序数量。
由于是完全二分图,所以他一定是分为若干层,每层内都是同色的点,他们会向后面所有不同色的层的点连边。美丽度可以定义为每一层的点数的阶乘之积(注意最后一层没有贡献,因为他们另一维是空的)。

修改就是改变一条边的方向。如果原本图上有环,我们必须改变所有环的公共边。二分完全图中如果存在环,那么中间存在某个边,无论他的定向如何都可以得到一个更小的环。根据这样归纳一定存在一个四元环。所以只需要考虑这四条边翻转方向的答案,直接跑 4 次就好。

现在考虑原图是个 DAG,那么如果改变的边跨过多层,那么一定有环。那么只能是相邻层之间的边。且你会把这条边的两个端点变成两个新的层。
假设有相邻两层,点个数分分别是 \(x,y\),那么去掉的贡献是 \(\frac{1}{xy}\),而选择两个的点的方案是 \(xy\),所以其实贡献就是 1。
第一层较为特殊,贡献是 \(x\)

然后是实现细节:如何找出一个拓扑序,或者找出一个四元环。
根据完全二分图的性质,同侧的点一定是按照 \(\deg_{in}\) 排序的。
那么可以双指针归并两部点,维护 2 类边全局 \(\deg_{in}\) 减标记(被减错的一定已经加入拓扑序中了)。

找出四元环:考虑拓扑序做了一半,然后没有 \(\deg_{in}=0\) 的点了。
那么一定要有 \(\deg_{in}=1\) 的点,否则翻转一条边仍然无法满足条件。
考虑 \(\deg^{in}_{u}=1\),从他往前跑 4 条边,一定可以找到一个四元环。

使用桶排序,时间复杂度线性。

posted @ 2026-05-30 15:47  TallBanana  阅读(10)  评论(0)    收藏  举报