摘要:
第一篇题解确实会被讨论区里的数据hack掉,那么就随便水一个不会被hack掉的题解吧 首先我们尝试着发现这道题的一些结论, 你就会发现答案是单调的不降的 这里的答案不降指的是 选择每一个位置$i$作为结尾能形成的最长区间的左端点是单调不降的 ,这个很好证明,将$i 1$这个位置作为结尾形成的最长区间 阅读全文
摘要:
树剖维护边双 首先我们看到在整个过程中图是保证连通的,于是我们并不需要LCT来维护连通性 而这些询问询问的是两个点之间关键路径的数量,也就是无论怎么走都必须走的数量,显然这就是两点之间的割边的数量 由于这里还有一些删除操作,树剖并不支持,所以我们先将所有的答案读进来,删掉所有的边 之后我们就$Tar 阅读全文
摘要:
$Trie$树+$DP$ 我们只需要做一个存在性dp就好了 对于每一个字符串,我们设$f[i]$表示从$1$到$i$位是否能被完全匹配 首先$f[0]=1$,之后我们对于每一个$f[i]=1$我们都可以往下匹配 具体的匹配方法自然是丢到$Trie$树上去,从$i$这位开始,一旦遇到一个结束标记就将这 阅读全文
摘要:
$Trie$ 树+搜索 我用的是$dfs$ 首先对于将所有的RNA片段都建到$Trie$树里去,之后来匹配那个模板串就好了 如果是匹配的位置是字母,那么我们就继续往下匹配 如果是$?$,我们必须要略过$Trie$树上的一位去匹配 如果是$ $,我们可以先考虑直接忽略这一位,也可以直接把这一位当成$? 阅读全文
摘要:
思路太妙了 刚开始yy出了一种比较自然的dp方法,就是按照游戏的进行来开始dp,设$dp[i][j]$表示第$i$个人为庄家,还剩下$j$个人的概率为多少,但是很快发现这个样子没法转移,因为没有办法确定下一个庄家是谁 于是只能将第二维压成一个状态$s$ ,$dp[i][s]$表示第$i$个人为庄家存 阅读全文
摘要:
很妙的一道题 感觉又加深了对$KMP$还有$next$数组的理解 先来看看这个鬼畜的题意,大致就是给你一个字符串, 对于这个字符串的每一个前缀 ,要去找到这个前缀的一个最长的前缀,使得 前缀成为这个前缀的前缀倍长之后的前缀 很蛇皮的题意,之后可能就会懵逼了,这根$KMP$有什么关系 我们来考虑这样一 阅读全文
摘要:
首先我们得贪心一下,让吃饭时间较长的人排在队首 去抄一段贪心的证明吧 现在研究在一个队伍里的人有什么性质 可以发现道题里也有一个不变量,就是对于队伍里的前$i$个人,不管他们排队的顺序如何,$a[i]$的前缀和$s[i]$是不会变的,第$i$个人会在$s[i]+b[i]$时刻吃完,这前$i$个人的吃 阅读全文
摘要:
发现自己推得组合数好像不太一样 先把这个复杂的柿子写一遍 $$\sum_{i=2}^{\left \lfloor\frac{n}{k}\right \rfloor}C_{2^k 1}^{i}+\sum_{i=1}^{2^{n\text{ } \text{mod} \text{ }k} 1}C_{2^ 阅读全文