该文被密码保护。 阅读全文
摘要:
设 $f_{i,j,k}$ 表示在串 $F(i)$ 的子序列中,$s$ 中区间 $[j,k]$ 作为子串的出现次数之和。 则有两种转移:一种是子序列完全包含在 $F(i-1)$ 或 $F(i-2)$ 中,一种是子序列跨越两端。 先讨论后一种情况:$f_{i,j,k}=\sum\limits_{l=j 阅读全文
摘要:
首先判掉 $(n-m)\bmod (k-1)\ne0$ 的情况,显然是无解的。 考虑消去的最后一步,必然是以 $b$ 中的某一元素为中位数进行的。 于是得到了一个必要条件:存在一个 $b_i$,满足 $a$ 中 $b_i$ 的两侧都至少有 $\dfrac{k-1}{2}$ 个不在 $b$ 中的数。 阅读全文
摘要:
首先将所有 $a_i\gets a_i-i$。 设 $f_{i,0/1}$ 表示前 $i$ 个数字,强制选第 $i$ 个数,未删过数字/已经删过数字的最长不下降子序列的长度。 则有 $f_{i,0}=\max\limits_{a_j\le a_i}\left{f_{j,0}\right}+1$,$f 阅读全文
摘要:
第一问非常经典,构造 $b_i=a_i-i$,那么答案就是 $n-$ $b$ 的最长不下降子序列的长度。 考虑第二问,设 $f_i$ 表示以 $i$ 结尾的最长不下降子序列的长度,$pre_i$ 是能转移到 $i$ 的集合,即 $\forall j\in pre_i, f_i=f_j+1$ 且 $b 阅读全文
摘要:
直接计算有多少对守卫被保护比较困难,可以计算有多少对守卫是没有被保护的。(只用考虑都没拿盾牌的就好了) 设有 $t$ 个守卫拿着盾牌,初始状态为 $a_{1\cdots n}$。 这相当于在一个 $01$ 串 $s$ 中填写 $t$ 个 $1$,将 $s$ 中的 $0$ 分成 $t+1$ 个部分,设 阅读全文
摘要:
已经强大到不会做 div2C 了,不愧是我 C1 的 DP 做法如果想继承到 C2 来需要用个线段树维护,非常麻烦。 但是 C1 还有个做法。 结论:设 $a_{n+1}=0$,则答案为 $\sum\limits_{i=1}^{n}\max(0,a_{i}-a_{i+1})$。 证明的话考虑下面这张 阅读全文
摘要:
首先观察最长几乎上升序列有什么性质。 发现可以从这样的序列中提取出一个非严格单调递增子序列,并且该子序列中任意两个相邻的数之间可以至多插入一个比它们两个都大的数。 这样就可以 DP 了。 设 $f_i$ 表示以第 $i$ 个结尾,强制选第 $i$ 个所能得到的最长几乎上升序列的长度。 则 $f_i= 阅读全文
摘要:
E 恶心,差分维护三段函数,细节有点恶心 具体细节看代码。 Code F 简单贪心 Code G 设 $P_{i,j}$ 为字符串 $i$ 字典序比字符串 $j$ 小的概率,有如下几条结论: 若 $s_j$ 是 $s_i$ 的前缀,那么 $P_{i,j}=0$。 若 $s_i$ 是 $s_j$ 的前 阅读全文
摘要:
首先题目中每条边权值互不相同,于是 A1 的结论依旧适用:有解当且仅当树中不存在度数为 $2$ 的点。 必要性很好证,度数为二的点不会是叶子,那么每条经过该点修改的路径一定同时经过该点的两条边,所以这两条边增减一致,但初始权值不同,显然无解。 充分性通过如下构造说明。 现在树中任意一非叶子节点至少度 阅读全文