12 2021 档案
摘要:题面传送门 首先这个回文串很玄学,我们考虑如果一个回文串的长度大于,那么以它为中心的长度为的回文串一定更符合要求。 所以我们的要求转化为每个点左右两边要不一样。 如果我们将奇偶分开,那么就是要每个都相邻不同,这个随便dp就好了。 code: #include<bits/stdc++.h>
阅读全文
摘要:题面传送门 真是一道大毒瘤题目,写了我两个晚上。 这个题面转化一下就是树上选条点不相交路径。 首先不难发现有一个的dp:设为子树内选了条链,当前点度数0/1/2的最大值。随便转移 特别的我们把一个单独的点看作2度数。 然后这个显然是
阅读全文
摘要:题面传送门 这道题目的圆很特殊,在同一条直线上且半径都是,所以若干个圆的面积并就是这几个圆的面积和减去相邻圆面积并 那么显然有一个dp:设为到了,选了个圆的相邻圆面积并最小值。时间复杂度 发现这个转移其实是的,式子比较复杂,不适合斜率
阅读全文
摘要:题目传送门 感觉很套路但是就是想不到那个套路 首先对于相邻两个同色互换有一个经典套路:对于奇数位反色那么就变成交换相邻01 这样的话如果固定两个字符串就可以简单计算答案了。 考虑有未知的情况,我们设为现在最后一对是第个和第个的答案,为方案数。 那
阅读全文
摘要:题面传送门 首先这个死大的肯定想到矩阵乘法。 看到这个特别小,不难想到设表示到了第次,场上有个一滴血,个两滴血,个三滴血的概率。 然后这个显然可以dp,每次算一下打到boss的答案就好了。 可以拿到20pts的好成绩 每次转移固定,
阅读全文
摘要:题面传送门 看到这个不难想到的dp,然后这个平方让人想到斜率优化。 但是这个价值的表示方法似乎并不好直接计算? 手玩一下发现有一个结论:最优转移点一定是同色的。 证明很显然,如果不是同色的那么当前单独一段然后前面再转移会更优。 然后同色之间这个东西随便用单调栈维护一下斜率优化就好了。
阅读全文
摘要:题面传送门 这里是一个复杂度很逊还常数死大的做法。 首先一个点如何转移到自己的另一个点是可以树形dp做出来的。 具体的,一个点先从儿子转移,而后从父亲转移,显然两次dp可以囊括所有情况。 然后发现如果把转移写成一个的矩阵这个东西就是两点路径上的矩阵乘积,这个是可以倍增维护的。
阅读全文
摘要:题面传送门 感觉优化一下可能是个神仙题不过这道题数据这么点还是算了吧 考虑一个简单的dp状态,就是直接设表示现在在点,还剩个值,但是发现没有办法转移,如果要记录每个点的答案的话那么就很难搞。 所以把这个东西放到边上去状态数瞬间变成 也就是设$dp_{i,j
阅读全文
摘要:题面传送门 我们先来考虑一个很sb的的dp 设为这个节点为权值的概率,那么显然的可以枚举两个儿子的权值然后暴力转移。 因为这个时间复杂度弱于每个叶子向上暴力跳的复杂度,还可以过随机的分。 然后发现这个东西是和前后缀和有关所以可以写个线段树合并维
阅读全文
摘要:F1 首先这个小看上去就是区间dp 我们设的方案数。 然后因为是从小往大染,所以这个区间内第一步染色的肯定是最小的颜色,记为 然后找到这个数的位置两边分别转移一下最后乘起来就好了,时间复杂度 F2 一开始想了个巨大多麻烦
阅读全文
摘要:题面传送门 我们考虑每个点,只有两种情况,一种是它的叶子节点自己和自己匹配完了,另一种是有一些叶子节点和外面去匹配。 所以我们可以设表示子树内匹配完了/没匹配完的答案。 考虑一个子树内点和点怎么匹配。首先总的方案数是每个直接儿子匹配完了/没匹配完 如果这个子树内自己和自
阅读全文
摘要:题面传送门 看到这个恰好就啪的一下很快啊一个二项式反演扔上去了。 把这个变成钦定个一定是答案,然后剩下的随便取的方案数。 然后其实就是一个基本的dp了,设表示选到第个,已经选了个,当前是否选的是右边以及上一个是否选的是右边,容易转移。 时间复杂度
阅读全文
摘要:题面传送门 先把这个序列排序,然后显然的我们有一个类似括号匹配的做法。 从大到小做,考虑每一个是最大值还是最小值还是中间的值,中间的值可以随便找一个尚未匹配的最大值放进去,如果设表示选到了第个,剩下了个最大值,当前和是 但是发现因为要有先加上右括号再减去左括
阅读全文
摘要:题面传送门 首先肯定先把A排序然后一个子序列权值是相邻权值的min 发现如果我们直接算答案为的不太好算。 我们考虑转化成答案至少为的,那么答案恰好为的 可以通过一个的dp算出来。 然后乘上权值是的,不能通
阅读全文