随笔分类 -  OJ -- CodeForces

摘要:F 对于一张比赛图,经过缩点,会得到dag,且它一定是transitive的,因此我们能直接把比赛图缩成一个有向链。链头作为一个强连通分量,里面的所有点都是胜利的 定义F(win)表示win集合作为赢家的概率,我们有 \[ ans=\sum_{win\in all} F(win)|win| \] 显 阅读全文
posted @ 2021-08-30 22:16 guapisolo 阅读(259) 评论(0) 推荐(0)
摘要:掉大分 E 对于一个序列,把它排回去的最小次数是 $\sum置换环大小-1=错位个数-置换环个数$ 注意到m小于等于n/3。那么最多修正2m个错位。正确位置的个数必须大于等于n/3才可能在m次内修正。 每个点正确位置只有一个。那么整个序列最多有3个位置,以它们为开头满足条件。找出这些位置再暴力验证即 阅读全文
posted @ 2021-07-23 20:25 guapisolo 阅读(73) 评论(0) 推荐(0)
摘要:传送门 考虑$c[i]>n/3$这个关键条件!最多有2个字母数量超过$n/3$! 没有奇数回文?长度大于3的回文串中间一定是长度为3的回文串,所以合法串一定没有长度=3的回文,也就是$a[i]\ne a[i-2]$恒成立 考虑没有数目限制的情况,除了前两个位置,其它位置都只能填25种字母,答案是$2 阅读全文
posted @ 2021-02-25 11:02 guapisolo 阅读(123) 评论(0) 推荐(0)
摘要:C2 Guessing the Greatest (二分+构造) 题目大意:交互题,每次可以询问一个子区间次大值的位置,最多询问20次,问全局最大值的位置。n=1e5 40次的情况大力二分,20次需要一些技巧 设全局最大值位置为$x$ 问一次全局次大值,设为$pos$,再次询问$pos$两侧判断最大 阅读全文
posted @ 2021-02-19 23:06 guapisolo 阅读(82) 评论(1) 推荐(0)
摘要:C Fence Painting(构造) 有用的刷子贪心刷,没用的刷子填在后续的有用/已存在的位置(用个栈记一下就行) D AB Graph(图上构造) 把边当做三种类型,aa bb ab m为奇数时,随便挑一条边来回跑m次就行,一定是回文的 m为偶数时,如果存在aa or bb边,来回跑m次;如果 阅读全文
posted @ 2021-02-17 17:35 guapisolo 阅读(53) 评论(0) 推荐(0)
摘要:C Continuous City(图的构造) 题目大意:让你构造一个n\le 32的有向无环无重边图,使得从1走到n的所有路径长度在L,R之间,且每种长度的路径只有唯一一条,$L,R\le 1e6$ 构造图的妙妙题目 先考虑$[1,2^{k}]$的情况 利用归纳法构图 假设已经构造完$[1,2^{ 阅读全文
posted @ 2021-02-16 21:58 guapisolo 阅读(51) 评论(0) 推荐(0)
摘要:D Multiples and Power Differences (构造) 题目大意:给一个n*m的矩阵a,a[i][j]在1到16之间。现在要构造矩阵b,需要满足如下条件: 1.b[i][j]在1到1e6之间 2.b[i][j]是a[i][j]的倍数 3.对于矩阵中任意相邻的两个数,要求存在正整 阅读全文
posted @ 2021-02-13 11:18 guapisolo 阅读(60) 评论(0) 推荐(0)
摘要:题目大意:给你一个序列,让你提取出一个子序列A,剩余的部分组成子序列B,现定义seg(x)表示把序列x中相邻的相同数合并成一个数后,序列x的长度,分别求seg(A)+seg(B)的最大值和最小值,n=1e5 考场上并没有想出最小值做法,只会最大值的贪心,下考才知道可以DP做?? 最大值的贪心: 维护 阅读全文
posted @ 2021-02-11 11:26 guapisolo 阅读(105) 评论(0) 推荐(0)
摘要:题目描述: 给你m个位于[1,n]的区间p,现在有长度为K的区间b和c。设对于区间$p[i]$,定义$a[i]$为$p[i]$分别与b,c相交长度的较大值,现在问区间b和c位于何处时,$\sum p_{i}$最大,输出这个最大值,n,m,K<=2000 好题目,dkr yyds! 暴力怎么搞?暴力枚 阅读全文
posted @ 2020-11-20 14:00 guapisolo 阅读(537) 评论(1) 推荐(0)
摘要:朴素做法暴力DP,O(nk)过不去。。。 1 #include <cmath> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 #define N1 2005 6 #define ll long long 7 usi 阅读全文
posted @ 2020-10-18 11:18 guapisolo 阅读(225) 评论(0) 推荐(0)
摘要:题目传送门 题目大意:给你一张n个点m条边的图。每次操作可以把两个点合并成一个(与之相连的边也都要连到新点上)。求把图中每个联通块都变成“毛毛虫”的最小操作次数。“毛毛虫”必须是一棵树(可以存在自环),且其中必须存在一条主链,使得主链外的点到主链上的任意一点距离为1。$n\leq 2000,m\le 阅读全文
posted @ 2019-04-03 20:17 guapisolo 阅读(261) 评论(0) 推荐(0)
摘要:题面传送门 题目大意:给你一张可能有重边的不保证联通的无向图,现在要在这个图上找出两条路径,恰好能覆盖所有边一次,根据边的编号输出方案,无解输出-1 一道很不错的欧拉路径变形题 首先要知道关于欧拉路径的一种算法:Hierholzer算法 这位神犇的讲解非常不错 欧拉路径与欧拉回路 我们称度为奇数的点 阅读全文
posted @ 2019-04-01 23:02 guapisolo 阅读(568) 评论(1) 推荐(0)
摘要:题目传送门 题目大意:给你一个字符串,让你求出有多少对相交的回文子串 啊啊啊啊降智了,我怎么又忘了正难则反! 求相交会很难搞。把问题转化成求互不相交的回文子串再减一下就行了 先利用$PAM$求出以每个位置为末尾的回文子串数量,这个数量就是此时构造末尾节点在$fail$树中的深度 再把串翻过来,用同样 阅读全文
posted @ 2019-04-01 22:33 guapisolo 阅读(354) 评论(0) 推荐(0)
摘要:题目传送门 题目大意:对于给定字符集大小k,求有多少个字符串满足它的最长【既是子串又是弱子序列】的长度为w; 神仙计数题 打表发现,对于字符串S而言,它的最长【既是子串又是弱子序列】,一定存在一个对应的子串,是S的前缀或者后缀 如果不是前缀或者后缀,那么它一定还可以向两边扩展 这启示我们分类讨论 容 阅读全文
posted @ 2019-03-03 16:01 guapisolo 阅读(291) 评论(0) 推荐(0)
摘要:用$m$种颜色的彩球装点$n$层的圣诞树。圣诞树的第$i$层恰由$a_{i}$个彩球串成一行,且同一层内的相邻彩球颜色不同,同时相邻两层所使用彩球的颜色集合不 同。求有多少种装点方案,答案对$p$取模。 好神的计数问题,zwz Orz 题解思路来自黄学长hzwer的博客 先只考虑在一行内的彩球的方案 阅读全文
posted @ 2019-02-08 14:52 guapisolo 阅读(309) 评论(0) 推荐(0)
摘要:题目传送门 题目大意:给你两个只包含A,G,C,T的字符串$S$,$T$,$S$长$T$短,按照如下图方式匹配 解释不明白直接上图 能容错的距离不超过$K$,求能$T$被匹配上的次数 $S$串同一个位置可以被$T$的不同位置匹配多次 对4种字符分别处理,假设我们现在只讨论字符A 对于字符串AGCAA 阅读全文
posted @ 2019-02-06 16:12 guapisolo 阅读(308) 评论(0) 推荐(0)
摘要:题目大意:要煎一块有两个面的肉,只能在一段k不相交的时间段$[l_{i},r_{i}]$内翻转,求$2*n$秒后,保证两个面煎的时间一样长时,需要最少的翻转次数,$n<=100000$,$k<=100$ 神仙单调队列优化$DP$, [NOI2005]瑰丽华尔兹 也有类似的压时间段的套路,但这道题可比 阅读全文
posted @ 2018-11-04 12:28 guapisolo 阅读(399) 评论(0) 推荐(0)
摘要:题目大意:给你一棵树,点有点权$a_{i}$,边有边权$w_{e}$,定义一种路径称为$2-path$,每条边最多经过2次且该路径的权值为$\sum _{x} a_{x}\;-\;\sum_{e}w_{e}\cdot k_{e}$,$k_{e}$为边的经过次数,一共$Q$次询问,每次查询经过$x,y 阅读全文
posted @ 2018-11-02 21:16 guapisolo 阅读(259) 评论(0) 推荐(0)
摘要:题目大意:给你一个长度为$n$的括号序列$T$,要求你构造一个长度为$2n$的括号序列$S$,保证这个括号序列在插入数字后一定是正确的,并且$T$是$S$的一个子串 还以为是什么纯粹的数学构造题,一通乱搞无果。好吧,并没有想到$KMP$.... 题解:首先用$KMP$预处理出数组$to[i][0/1 阅读全文
posted @ 2018-11-02 15:17 guapisolo 阅读(226) 评论(0) 推荐(0)
摘要:题目大意:给你一棵树,每个点有点权a_{i},求$\sum _{i=1}^{n} \sum _{j=i}^{n} f(i,j)$,$f(i,j)$表示i,j,路径上的点的最大权值-最小权值 正解的思路好神啊 正解: 首先,原式可以拆成$\sum _{i=1}^{n} \sum _{j=i}^{n} 阅读全文
posted @ 2018-11-02 10:46 guapisolo 阅读(360) 评论(0) 推荐(0)