把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end

12 2021 档案

摘要:题面传送门 看到这个不难想到dp 首先有一个基本结论:如果两个点$(x_i,y_i),(x_j,y_j)$满足$x_i\geq x_j$且$y_i\leq y_j$那么$(x_i,y_i)$是没有用的。 所以我们可以得到一系列有用的点,满足$y_i\geq y_{i-1}$ 所以不难想到$O(n^2 阅读全文
posted @ 2021-12-30 20:47 275307894a 阅读(111) 评论(0) 推荐(0)
摘要:题面传送门 首先这个回文串很玄学,我们考虑如果一个回文串的长度大于$3$,那么以它为中心的长度为$3$的回文串一定更符合要求。 所以我们的要求转化为每个点左右两边要不一样。 如果我们将奇偶分开,那么就是要每个都相邻不同,这个随便dp就好了。 code: #include<bits/stdc++.h> 阅读全文
posted @ 2021-12-30 19:16 275307894a 阅读(51) 评论(0) 推荐(0)
摘要:题面传送门 真是一道大毒瘤题目,写了我两个晚上。 这个题面转化一下就是树上选$k+1$条点不相交路径。 首先不难发现有一个$O(nk)$的dp:设$dp_{i,j,0/1/2}$为$i$子树内选了$j$条链,当前点度数0/1/2的最大值。随便转移 特别的我们把一个单独的点看作2度数。 然后这个显然是 阅读全文
posted @ 2021-12-29 22:52 275307894a 阅读(62) 评论(0) 推荐(0)
摘要:题面传送门 这道题目的圆很特殊,在同一条直线上且半径都是$r$,所以若干个圆的面积并就是这几个圆的面积和减去相邻圆面积并 那么显然有一个dp:设$f_{i,j}$为到了$i$,选了$j$个圆的相邻圆面积并最小值。时间复杂度$O(n^2k)$ 发现这个转移其实是$O(n)$的,式子比较复杂,不适合斜率 阅读全文
posted @ 2021-12-26 11:51 275307894a 阅读(173) 评论(0) 推荐(0)
摘要:题目传送门 感觉很套路但是就是想不到那个套路 首先对于相邻两个同色互换有一个经典套路:对于奇数位反色那么就变成交换相邻01 这样的话如果固定两个字符串就可以简单计算答案了。 考虑有未知的情况,我们设$f_{i,j}$为现在最后一对$1$是第$i$个和第$j$个的答案,$g_{i,j}$为方案数。 那 阅读全文
posted @ 2021-12-25 20:41 275307894a 阅读(81) 评论(0) 推荐(0)
摘要:题面传送门 首先这个死大的$n$肯定想到矩阵乘法。 看到这个$m,k$特别小,不难想到设$dp_{i,a,b,c}$表示到了第$i$次,场上有$a$个一滴血,$b$个两滴血,$c$个三滴血的概率。 然后这个显然可以dp,每次算一下打到boss的答案就好了。 可以拿到20pts的好成绩 每次转移固定, 阅读全文
posted @ 2021-12-24 21:35 275307894a 阅读(62) 评论(0) 推荐(0)
摘要:题面传送门 看到这个不难想到$O(n^2)$的dp,然后这个平方让人想到斜率优化。 但是这个价值的表示方法似乎并不好直接计算? 手玩一下发现有一个结论:最优转移点一定是同色的。 证明很显然,如果不是同色的那么当前单独一段然后前面再转移会更优。 然后同色之间这个东西随便用单调栈维护一下斜率优化就好了。 阅读全文
posted @ 2021-12-23 18:33 275307894a 阅读(54) 评论(0) 推荐(0)
摘要:题面传送门 这里是一个复杂度很逊还常数死大的做法。 首先一个点如何转移到自己的另一个点是可以树形dp做出来的。 具体的,一个点先从儿子转移,而后从父亲转移,显然两次dp可以囊括所有情况。 然后发现如果把转移写成一个$2\times 2$的矩阵这个东西就是两点路径上的矩阵乘积,这个是可以倍增维护的。 阅读全文
posted @ 2021-12-22 22:16 275307894a 阅读(57) 评论(0) 推荐(0)
摘要:题面传送门 首先我们考虑如果一个点通过的概率是$p$那么期望的小时数。 显然是$\sum\limits_{i=0}^{\infty}{(1-p)i}\(,这个东西化简一下可以得到是\)\frac{1}{p}$ 所以一个点的权值就是$\frac{\sum\limits_{x=l_j}{i}{t_i}} 阅读全文
posted @ 2021-12-16 18:59 275307894a 阅读(44) 评论(0) 推荐(0)
摘要:题面传送门 我们考虑这个$c^{2x-6}$,看上去很迷惑。 但是如果我们设$g(x)=f_(x)\times c^{x}$,那么我们就可以很惊奇地发现$g(x)=g(x-1)g(x-2)g(x-3)$ 然后就可以分$c,f_1,f_2,f_3$三个算一下幂次就好了,注意膜$1000000006$ 阅读全文
posted @ 2021-12-16 17:38 275307894a 阅读(52) 评论(0) 推荐(0)
摘要:题面传送门 感觉优化一下可能是个神仙题不过这道题数据这么点还是算了吧 考虑一个简单的dp状态,就是直接设$f_{i,j}$表示现在在$i$点,还剩$j$个值,但是发现没有办法转移,如果要记录每个点的答案的话那么就很难搞。 所以把这个东西放到边上去状态数瞬间变成$O(n3)$ 也就是设$dp_{i,j 阅读全文
posted @ 2021-12-15 22:20 275307894a 阅读(33) 评论(0) 推荐(0)
摘要:题面传送门 我们先来考虑一个很sb的$O(n^2)$的dp 设$dp_{i,j}$为$i$这个节点为$j$权值的概率,那么显然的可以枚举两个儿子的权值然后暴力转移。 因为这个时间复杂度弱于每个叶子向上暴力跳的复杂度,还可以过随机的$10$分。 然后发现这个东西是和前后缀和有关所以可以写个线段树合并维 阅读全文
posted @ 2021-12-12 15:23 275307894a 阅读(50) 评论(0) 推荐(0)
摘要:F1 首先$n$这个小看上去就是区间dp 我们设$dp_{i,j}\(表示染色区间\)[i,j]$的方案数。 然后因为是从小往大染,所以这个区间内第一步染色的肯定是最小的颜色,记为$Mi$ 然后找到这个数的位置两边分别转移一下最后乘起来就好了,时间复杂度$O(n^3)$ F2 一开始想了个巨大多麻烦 阅读全文
posted @ 2021-12-11 21:26 275307894a 阅读(52) 评论(0) 推荐(0)
摘要:题面传送门 我们考虑每个点,只有两种情况,一种是它的叶子节点自己和自己匹配完了,另一种是有一些叶子节点和外面去匹配。 所以我们可以设$dp_{x,0/1}$表示$x$子树内匹配完了/没匹配完的答案。 考虑一个子树内点和点怎么匹配。首先总的方案数是每个直接儿子匹配完了/没匹配完 如果这个子树内自己和自 阅读全文
posted @ 2021-12-10 20:59 275307894a 阅读(39) 评论(0) 推荐(0)
摘要:题面传送门 看到这个恰好就啪的一下很快啊一个二项式反演扔上去了。 把这个变成钦定$k$个一定是答案,然后剩下的随便取的方案数。 然后其实就是一个基本的dp了,设$dp_{i,j,0/1,0/1}$表示选到第$i$个,已经选了$j$个,当前是否选的是右边以及上一个是否选的是右边,容易转移。 时间复杂度 阅读全文
posted @ 2021-12-09 18:23 275307894a 阅读(50) 评论(0) 推荐(0)
摘要:题面传送门 先把这个序列排序,然后显然的我们有一个类似括号匹配的做法。 从大到小做,考虑每一个是最大值还是最小值还是中间的值,中间的值可以随便找一个尚未匹配的最大值放进去,如果设$dp_{i,j,k}$表示选到了第$i$个,剩下了$j$个最大值,当前和是$k$ 但是发现因为要有先加上右括号再减去左括 阅读全文
posted @ 2021-12-08 22:40 275307894a 阅读(58) 评论(0) 推荐(0)
摘要:题面传送门 首先肯定先把A排序然后一个子序列权值是相邻权值的min 发现如果我们直接算答案为$i$的不太好算。 我们考虑转化成答案至少为$i$的,那么答案恰好为$i$的$g_i=f_{i}-f_{i+1}$ $f_i$可以通过一个$O(nk)$的dp算出来。 然后乘上权值是$O(nkW)$的,不能通 阅读全文
posted @ 2021-12-07 22:09 275307894a 阅读(30) 评论(0) 推荐(0)

浏览器标题切换
浏览器标题切换end