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:正难则反
考虑最终结束状态是什么样子,倒着合并纸条能否满足限制。
- 每次一定合并最短和次短(如果不合并最短,一定不合法,否则也肯定不优)。
- 任意时刻,最短、次短、第三短不能相同 \(\Rightarrow\) 一个数可以出现三次,当且仅当它前面有奇数个数。
不妨暂且认为每个数出现两次,则最终序列形如:i,i,i+1,i+1,...,2i-1,2i-1。
发现一个数要出现三次,则必须在它前面删掉一个数,故这种操作不改变序列长度,只能用来调整总和。
有几种调整方式:
- \(ans\) 不变,\(sum\to sum+[0,i-1]\):删一个 \(i\),后面加一个数
- \(ans\to ans-1\),\(sum\to sum-[i,2i-1]\):随便删一个数。
- \(ans\to ans-2\),\(sum\to sum-[2i,4i-2]\):随便删两个数。
- \(ans\to ans-3\),\(sum\to sum-[4i-1,5i-2]\):删掉一个 \(i\),一个 \(2i-1\) 和随便一个数。
- 还有一种神秘调整方式:删掉两个 \(2i-1\),然后重复上面的操作,这样可以补 \(sum'-[1,(i-1)-1]\) 这个空缺。
- 发现一个 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 引理

浙公网安备 33010602011771号