上一页 1 2 3 4 5 6 ··· 19 下一页
摘要: 首先不难发现,字符串具体是啥对答案没有影响。 于是有两种做法,第一种我个人认为更好理解,就是由于长度相同的字符串,用相同操作次数产生它们的方案数是一样的,则设计 $f(i,j)$ 表示用 $i$ 次操作产生长度为 $j$ 的字符串的方案数,则有 加入 $0/1$,$f(i+1,j+1)\gets f 阅读全文
posted @ 2022-11-17 20:36 Kobe303 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 设 $f(S)$ 表示将字符串 $S$ 拆分成 $T$ 的前缀相连,最少需要划分成几段。 需要注意到一个性质,每个字符串被拆分时,最后一个子串应尽可能长。换句话说,若字符串 $A,B$ 都是可以转移的位置,且 $A$ 是 $B$ 的前缀,则必有 $f(A)\lt f(B)$,从 $A$ 转移一定最优 阅读全文
posted @ 2022-11-17 08:48 Kobe303 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 先考虑暴力的 DP,设 $f_i$ 表示到根节点距离恰好为 $i$ 的节点数量,则有 $$f_i=\sum_{j=1}^nf_{i-d_j}$$ 初值为 $f_0=1$,最终求的是 $\sum\limits_{i=0}^x f_i$。 注意到 $d_i\le100$,有很多相同的转移,于是记 $cn 阅读全文
posted @ 2022-11-16 22:25 Kobe303 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 考虑二分最小值,设当前二分出的值为 $x$。 那么把区间中 $\ge x$ 的变成 $1$,其余变为 $0$,那么就是查询区间内最长全 $1$ 区间长度是否 $\ge k$。 这个类似于区间最大子段和,可以用线段树轻松维护。 而发现每个 $x$ 都可能被用到,于是换成主席树即可。 时间复杂度 $\m 阅读全文
posted @ 2022-11-16 21:09 Kobe303 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 首先需要发现一个性质,每个串都是单调的,因为一个不单调的串一定可以拆分成若干个单调的串,并且不劣。 于是用 DP 处理出两个单调串相交的点分给哪个串即可。 具体的话就是设 $f_i$ 表示前 $i$ 个位置的答案,如果 $a_{i-2},a_{i-1},a_i$ 是单调的,那么 $$f_i=f_{i 阅读全文
posted @ 2022-11-16 19:46 Kobe303 阅读(17) 评论(0) 推荐(0) 编辑
摘要: E: 简单最短路,加一维表示当前是否翻转所有边的状态即可。 Code F: 先考虑简化版本,如果 $\left{A\right}$ 中没有 $0$,如何判定。 重新表述一下条件,令 $mn_i,mx_i$ 分别表示第 $i$ 行中的最小值和最大值,则有 $mn_1\le mx_1\le mn_2\l 阅读全文
posted @ 2022-11-16 18:58 Kobe303 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 每一个 bool 变量表示「$a_i$ 是否 $\ge j$」,由于 $a_i$ 必然 $\ge1$,所以总的变量数是 $n(k-1)$。 然后我们根据题目条件来建有向边,注意 2-sat 要满足对称性,所以下文中每一个条件的逆否命题都要建边: $a_i\le a_{i+1}$,等价于「对于所有的 阅读全文
posted @ 2022-11-16 07:07 Kobe303 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 考虑时光倒流。 由于 A 操作只会给两个活跃的点连边,所以可以忽略,倒过来相当于没有删边操作。 然后只剩下加边,加活跃点,两种操作。每次暴力 DFS 即可。 时间复杂度 $\mathcal O(n+Q)$。 Code: #include <bits/stdc++.h> using namespace 阅读全文
posted @ 2022-11-15 19:58 Kobe303 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 设当前枚举到第 $i$ 位,$x$ 为 $i$ 前面期望连续 $1$ 的个数。 令 $a_i=x,b_i=x^2,c_i=x^3$。 $a$ 很好转移, $$a_i=(a_{i-1}+1)\times p_i$$ $b$ 的转移考虑 $(x+1)^2=x^2+2x+1$,则有 $$b_i=(b_{i 阅读全文
posted @ 2022-11-14 19:12 Kobe303 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 先对 $k$ 进行二分,将最值问题转化成判定问题。 判定一个 $k$ 是否合法时,贪心去考虑,一个节点下面的若干条链在合并时,一条链肯定和另一条使它合并后恰好满足长度限制的链合并最优。因此我们用 multiset 来进行维护,一条长度为 $len$ 的链,去查询最小的长度 $\ge k-len$ 的 阅读全文
posted @ 2022-11-14 08:18 Kobe303 阅读(18) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 19 下一页