2023-1-29 #30 为何妄自菲薄你我本是同类
——不安琪《黑百合》
168 CFgym103469J Joke
首先把 \(p\) 变形为恒等排列以方便处理。
可以发现,一个 \(s\) 合法当且仅当连成图后不成环。
由于环一定会跨越两行,而简单环一行内若有 \(>2\) 个数总能变成 \(2\) 个数,因此只需考察大小为 \(4\) 的简单环。
我们按照 \(q\) 的大小,从大到小考虑每个下标 \(i\)。若我们让 \(p\) 向 \(q\) 连边,则一定不会成环;如果我们让 \(q\) 向 \(p\) 连边,那么其右边所有还未连边的数都必须让 \(q\) 向 \(p\) 连边。
也就是说,我们要么删去最大元素,要么删去最大元素与其后面所有元素,求删完的方案数。
容易发现,这个值等于 \(q\) 的上升序列个数。
计数比较简单,直接 dp 前 \(i\) 个数,最后一个是 \(j\),填了 \(k\) 个通配符,前缀和优化即可 \(O(n^3)\)。
据说这是“偏序集的序理想与反链的双射”,但是我根本不会这玩意!!
169 CFgym103469L Little LCS
谔谔打表题。
对于任意一对相邻字符 \((s_i,s_{i+1}),(t_i,t_{i+1})\),可以发现 \(s\) 与 \(t\) 有至少 \(1\) 个相同字符,所以 lcs 长度至少为 \(n\)。
结论:合法串形如:
S=ABABABABA
T=CACBCACAC
类:即第一个串AB
交替,第二个奇数位置为C
,其余位置AB
任意。S=ACACACBCB
T=BCBCBCACA
类:即两串偶数位置为C
,奇数位置 S 为 \(k\) 个A
与 \(n-k+1\) 个B
,T 为 \(k\) 个B
与 \(n-k+1\) 个A
。
结论可以打表发现,通过归纳法与细致的分类讨论可以证明,具体就是枚举长度 \(2n-1\) 的前缀属于哪一类,再枚举后面三个字符的形态。
170 Ptz2017 Winter Xiaoxu Guo Contest 5 H Permutation and noitatumreP
来源比较难找,记一下题意吧:
定义一个排列是好的当且仅当将其 reverse 后接在自己后面,不存在形如 1423 的子序列(形如指的大小关系)。
其实我挺喜欢这种关于子结构的题,不过感觉这题纯分讨,不是很有意思。
直接设 \(f_n\) 为长为 \(n\) 的合法排列数量,我们不妨考虑 \(n\geqslant 5\)。
如果 \(p_1=n\),那么这个位置没用,方案数就是 \(f_{n-1}\)。
如果 \(p_1=n-1\),那么手玩可知 \(p_2=n\),因此方案数是 \(f_{n-2}\)。
如果 \(p_1=1\),那么手玩可知对于所有 \(i\leqslant n-2\) 都有 \(p_i=i\),方案数为 \(2\)。(证明可以分讨一下逆序对的来源)
如果 \(p_1\in[3,n-2]\),讨论 \(p_2\) 取值:
- \(p_2=1\):\((1,n,2,p_1)\)。
- \(p_2\in[2,p_1-1]\):\((1,n,p_2,p_1)\)。
- \(p_2=p_1+1\):暂时合法。
- \(p_2\in[i+2,n-1]\):\((p_1,n,p_1+1,p_2)\)。
- \(p_2=n\):若 \(p_1\ne n-2\),\((p_1,n,p_1+1,p_1+2)\),否则是合法的。
那么形态会是 \(p_1,p_1+1,\cdots n-2,n-1,n\) 或者 \(p_1,p_1+1,\cdots n-2,n,n-1\),方案数就是 \(2\sum_{i=2}^{n-3}f_i\)。
如果 \(p_1=2\),那么 \(p_2\in\{1,3\}\),否则可以给出 \((2,n,3,p_2)\)(\(p_2\ne n\)) 或 \((2,n,3,4)\)(\(p_2=n\))。
那么若 \(p_2=1\),则方案数为 \(2\),否则形态如:
\(2,3,\cdots,k-1,k,1,k+1,\cdots n-1,n\)。(当然还有 swap \(n-1\) 与 \(n\) 的形式)
方案数为 \(2(n-2)\)。(注意 \(1\) 也可以插在 \(n-1,n\) 内以及排列最右侧)
矩阵快速幂即可。
不过考场做法肯定本地打表直接算递推式!!