ACM
文章平均质量分 82
算法竞赛知识
snowy2002
一个来自985的ACMer
展开
-
CCPC2022(桂林)
然后问题就转化为区间和点的覆盖问题,可以通过优先队列来实现,具体地,将区间按照左端点排序,然后从小到大枚举需要填的数字,每次加入比当前值小的区间,然后用优先队列维护右端点最小的区间作为这个数字应该填入的区间。因此,问题转化为求两条不相交的链的点权和以及求以一个点为根的最大的四个儿子的深度和。题目大意:在树上选出两条链,使得在两条链选中的点中,只被一条链选中的点的点权和最大。值加和来更新答案,也就是四个最大的儿子的深度,下面考虑两条不相交的链的情况。的最大值之间的关系,决定是否从次大的。原创 2023-01-27 21:01:27 · 1147 阅读 · 1 评论 -
线段树区间修改,维护区间gcd
一道很经典的题目,大概就是在线段树上维护序列的差分就好了。原创 2023-01-02 22:23:26 · 349 阅读 · 0 评论 -
Codeforces Round #837 (Div. 2) A~F
对于两条竖线中出现一次m的情况,我们可以枚举m出现的位置然后上下扩展,得到每个m所属的区间后,再遍历这个区间判断中间的横是否全都是好点。出现奇数次可以用异或和不等于零代替,然后我们对于每一个数随机一个对应的值,这样只需要用主席树就能求得最小的出现次数为奇数的数字。对于两条竖线中不出现m的情况,我们可以直接通过双指针的方法得到区间,再判断中间的横线是否出现m的次数小于等于1次。即可,这样我们抽出树上的一条链的时候,只需要记录前驱和后继结点即可,另外用记忆化搜索可以很方便的的实现。的最长回文子序列的长度,则。原创 2022-12-15 04:40:17 · 558 阅读 · 0 评论 -
Codeforces Round #836 (Div. 2) A~E
表示这个格子里钟表的时刻可以是任意的,并且,你可以把每一行或者每一列的钟表的时刻同时改变一个相同的数字,问有多少种方法把可以任意调节的钟表调节完后,能够通过有限次操作使得所有的钟表的时间全部统一。,然后就是一个带边权的二分图染色问题,如果图中出现某个连通块不是好的,答案一定为0,否则,记好的连通块个数为cnt,答案就是。,我们把这样的连通块成为一个好的连通块,判断可以通过类似二分图染色的方法实现,可以将第一个点赋值为。之前的位置已经是最优的,所以只需要考虑之后的数值,我们每次只需要找到。原创 2022-12-10 20:33:08 · 446 阅读 · 0 评论 -
CCPC2020(绵阳) C. Code a Trie
然后我们再求最少的结点个数,首先所有的LCA到根的路径一定能包含所有的答案中的点,然后我们考虑将LCA尽可能往根上面跳,首先,一个LCA不能跳到其他的LCA上,而且也不能跳到之前的LCA跳的路径上,其次,不能跳到子树中含有大于等于两个这样的LCA的结点,这样我们就能算出最少的结点个数了。其次,同一个value值的所有儿子结点的子树中包含这个权值的子结点一定只能含有当前的权值,如果含有多于一个的话,就一定不能构成符合条件的字典树,如果两个不同权值所得的LCA相同,同样也无解。原创 2022-10-27 00:21:40 · 248 阅读 · 0 评论 -
P6292 区间本质不同子串个数(SAM+LCT+线段树)
现在我们需要考虑重复字符串的问题,我们只需要计算所有重复出现的子串最后一次出现的位置即可,而对于一个等价类中的所有字符串,也就是后缀树上一个结点能够表示的所有字符串,我们可以同时处理他们的最后一次出现的结束位置。也就是说,在每插入一个点往根跳的过程中,只需要减去这条实链对答案的贡献并且在实链的。在加入一个新的右端点的时候,我们可以把这条链上原有的贡献减去,再加上新的贡献。如果不考虑重复的字符串,每加入一个右端点,对答案的贡献就是。值相同的结点一定在一条连续的链上,也就。行,每行一个整数,表示第。原创 2022-08-25 14:58:00 · 390 阅读 · 0 评论 -
P5212 SubString(SAM+LCT)
上连接两个点即可,而对于两个点的情况,天上的结点需要继承儿子的权值,地上的结点直接连边就可,这样就可以动态维护后缀树了,对于每次插入的地上的结点,我们还需要把这个点到根上的路径。如果不要求强制在线的话,把询问离线下来按照右端点排序,把插入字符串的过程改成删除字符串的过程,对于删除一个字符,就可以把这个字符对应的后缀树上的结点到根的链的。中插入结点的时候有两种情况,一种是在后缀树上插入一个点,一种是插入两个点,对于一个点的情况,我们只需要在。操作,输出询问的字符串在当前字符串中出现了几次。原创 2022-08-25 10:44:56 · 404 阅读 · 0 评论 -
P4770 [NOI2018] 你的名字(SAM+主席树)
实力强大的小 A 被选为了 ION2018 的出题人,现在他需要解决题目的命名问题。小 A 被选为了 ION2018 的出题人,他精心准备了一道质量十分高的题目,且已经把除了题目命名以外的工作都做好了。由于 ION 已经举办了很多届,所以在题目命名上也是有规定的,ION 命题手册规定:每年由命题委员会规定一个小写字母字符串,我们称之为那一年的命名串,要求每道题的名字必须是那一年的命名串的一个非空连续子串,且不能和前一年的任何一道题目的名字相同。由于一些特殊的原因,小 A 不知道 ION2017 每道题的名字原创 2022-08-07 17:20:08 · 371 阅读 · 1 评论