随笔分类 - 数据结构——树合并
摘要:"传送门——BZOJCH" 考虑两种情况: 1、答案由一个最长公共子串+可能的一个模糊匹配位置组成。这个用SAM求一下最长公共子串,但是需要注意只出现在$S$的开头和$T$的结尾的子串是不能够通过额外的一个模糊匹配得到更长的子串的,而对于其他的子串来说都可以。 2、答案由模糊位置两遍的子串构成。暴力
阅读全文
摘要:搞学科十分舒适 一双木棋 搜索,在搜索的过程中使用哈希记录重复的状态,每一次枚举合法的放置位置往下递归,取当前所有可行状态中的最优解即可。 include using namespace std; int read(){int a; cin a; return a;} namespace flow{
阅读全文
摘要:"麻将" (期望、DP套DP) 先考虑如何计算一个子集是否能胡。 设$f_{i,0/1,j,k}$表示考虑了子集中$1 \sim i$的牌,是否找到对子,$i 1,i,i+1$预计拿$j$个,$i,i+1,i+2$预计拿$k$个,最多能够产生多少面子。注意到$j$和$k$的状态都是预计,所以并不算入
阅读全文
摘要:"异或粽子" (可持久化Trie、堆) 超级钢琴+可持久化Trie???~~HNOI D1T1怎么不出这种送分题啊~~ "代码" "字符串问题" (SAM、记搜) 一切字符串问题用SAM就完事了 把原串reverse,这样“某个$A$串是前面的$A$串支配的$B$串的前缀”的条件变成了后缀。而以某个
阅读全文
摘要:"传送门" 在最优的情况下,序列$s_1,s_2,...,s_k$中,$s_i (i \in [2 , k])$一定会是$s_{i 1}$的一个$border$,即$s_i$同时是$s_{i 1}$的前缀和后缀,否则一定可以通过减去$s_{i 1}$的一个前缀和后缀使得满足条件。 对原串建立$SAM
阅读全文
摘要:"传送门" 朴素想法:对$M$个匹配串$T_1,...,T_M$建立广义SAM,对于每一次询问,找到这个SAM上$S[pl...pr]$对应的状态,然后计算出对于每一个$i \in [l,r]$,计算出$T_i$能够转移到这个状态的次数然后取$max$。 需要解决两个问题: 1、如何快速找到$S[p
阅读全文
摘要:"传送门" $DP$ 设$f_i$表示第$i$个节点的答案,$S_i$表示$i$的子节点集合,那么转移方程为$f_i = \min\limits_{j \in S_i} \{a_i \times b_j + f_j\}$ 这是一个很明显的斜率优化式子,斜率为$b_j$,截距为$f_j$,自变量为$a
阅读全文
摘要:传送门 只会线段树……关于单调队列的解法可以去看“重建计划”一题。 看到路径长度$\in [L,R]$考虑点分治。可以知道,在当前分治中心向其他点的路径中,始边(也就是分治中心到对应子树的根的那一条边)颜色相同的两条路径在拼合的时候在加上两条路径的权值之后需要减掉始边颜色的权值(因为被计算了两次),
阅读全文
摘要:传送门 题意:自己去看 首先可以知道,每一个点都有几率被选到,所以$i$与$V_i$的关系是确定了的。 所以我们只需要考虑每一个值的取到的概率。 很容易设计出一个$DP$:设$f_{i,j}$为在第$i$个点取到权值第$j$小的点的概率,转移就是$f_{i,j}=f_{lson,j} \times
阅读全文

浙公网安备 33010602011771号