2025.4.3 模拟赛

4.3 ZKY 模拟赛

[UOJ 670] 获奖名单

给定若干长为 1/2 的串,任意拼接成回文串。

赛时做法(微假)

特殊性质 \(l_i=2\) 启发:先把相同的串两两配对

此时所有的配对方式都是“错位”的,那么知道起点就能搜出整条链。

连边是瞎连的,于是假了(因为形如 aa 的不能自己连自己)

赛后进行了随机调参(笑

正解

我没有看出这是欧拉回路...

每个字符是一个点,每个串是一条边。

\(l_i=1\) 的串就是从空点连向字符,\(l_i=2\) 的就是从字符连向字符。

一条配对链就是新图上一条经过空点的欧拉回路。

[Luogu 7921] Division

初始有一张长为 \(n\) 的纸条,每次操作选择一张纸条,撕成长度为正整数的两部分。要求任意时刻,最长纸条的长度严格小于最短纸条长度的两倍。

key:正难则反

考虑最终结束状态是什么样子,倒着合并纸条能否满足限制。

  1. 每次一定合并最短和次短(如果不合并最短,一定不合法,否则也肯定不优)。
  2. 任意时刻,最短、次短、第三短不能相同 \(\Rightarrow\) 一个数可以出现三次,当且仅当它前面有奇数个数。

不妨暂且认为每个数出现两次,则最终序列形如:i,i,i+1,i+1,...,2i-1,2i-1

发现一个数要出现三次,则必须在它前面删掉一个数,故这种操作不改变序列长度,只能用来调整总和。

有几种调整方式:

  1. \(ans\) 不变,\(sum\to sum+[0,i-1]\):删一个 \(i\),后面加一个数
  2. \(ans\to ans-1\)\(sum\to sum-[i,2i-1]\):随便删一个数。
  3. \(ans\to ans-2\)\(sum\to sum-[2i,4i-2]\):随便删两个数。
  4. \(ans\to ans-3\)\(sum\to sum-[4i-1,5i-2]\):删掉一个 \(i\),一个 \(2i-1\) 和随便一个数。
  5. 还有一种神秘调整方式:删掉两个 \(2i-1\),然后重复上面的操作,这样可以补 \(sum'-[1,(i-1)-1]\) 这个空缺。
  6. 发现一个 hack 9 -> 4 5 ,需要在 3 3 4 4 5 5 中删掉 4 个数,其他情况大抵是都可以解决的。

从小到大枚举 \(i\),找到一个合法的就一定是答案。

[QOJ 4893] Imbalance

就是昨天 sjy 讲的序列转 \(L\times \frac {n}{L}\) 矩阵的思路...

但是我没太听懂 wl 大佬讲的那个dp思路/kk
看了官方题解也没明白到底是怎么 dp 的/kk

正解:矩阵转化为折线,要求路径不相交 \(\Rightarrow\) LGV 引理

posted @ 2025-04-17 19:51  Cindy_Li  阅读(48)  评论(0)    收藏  举报