随笔分类 -  ACM

摘要:AC自动机可以很方便的处理字符串匹配问题,但在一些题目中,需要去在线的加入/删除字符串并进行匹配。以CF163E为例,这道题先给出k个字符串,之后分为三种操作,加入/删除其中一个字符串,以及给出一个字符串进行匹配。对于匹配问题,每个字符串的结束所对应的节点,以及它在fail树上的子节点,其权值都要+ 阅读全文
posted @ 2021-08-28 02:53 樱与梅子 阅读(148) 评论(0) 推荐(0)
摘要:通常AC自动机上的dp至少是两维的,第一维是字符串长度,第二维是AC自动机上的节点数,dp[i][j]表示长度为i的字符串在自动机上匹配到j节点。在进行转移时,选定一个已经匹配到的节点,去更新它可以到达的节点的状态。 以洛谷P3041为例,在这一题中,先将所有的组合技插入到AC自动机中。当匹配到j节 阅读全文
posted @ 2021-08-24 15:12 樱与梅子 阅读(766) 评论(0) 推荐(0)
摘要:一道次小生成树的模板题。 #题意 给定一个无向连通图,判断最小生成树是否唯一。唯一的话输出最小生成树的总权值。 #思路 我们只要分别求出图的最小生成树和非严格次小生成树,然后判断它们是否相等就好。 #次小生成树算法解释 次小生成树前置知识:最小生成树、LCA 我们先求出图G的最小生成树,之后再找出不 阅读全文
posted @ 2021-01-27 16:13 樱与梅子 阅读(119) 评论(0) 推荐(0)
摘要:这是一道最小树形图的模板题。不清楚朱刘算法的话可以看看这篇博客,写的比较形象。 #题意 计算让每家都喝上水的最小花费。每家可以挖水井或者从有水的人家引水(一些家庭可能不允许其他一些家庭从那里建一条水线)。水井的花费为该户人家的高度乘X,水线的花费为两户人家的曼哈顿距离乘Y(供水高度低于取水高度还需要 阅读全文
posted @ 2021-01-18 20:09 樱与梅子 阅读(95) 评论(0) 推荐(0)
摘要:#题意 我们有一个x,初始为0,我们按字符串顺序进行“+1”或“-1”操作。有m个询问,每次询问我们删去字符串的l到r的符号后,x在完成所有操作中出现的不同数值的总数(包括初始的0)。 #思路 因为每次只能进行+-1,所以从a到b必然会经过a到b所有的整数。我们可以用线段树记录下区间的最大和最小值, 阅读全文
posted @ 2021-01-17 18:24 樱与梅子 阅读(97) 评论(0) 推荐(0)
摘要:题意是我们需要向所有人散播谣言,向第i个人散播谣言需要ci个金币,除此之外还有m个朋友关系,知道谣言的人会将谣言告诉他的朋友,求最小花费。 这题是很典型的并查集,我们只需要在合并时比较两个根节点的大小,将大的合并到根节点小的集合上去即可。 AC代码: #include <iostream> #inc 阅读全文
posted @ 2020-11-06 14:15 樱与梅子 阅读(92) 评论(0) 推荐(0)
摘要:题意就是无向图找环,输出环的数量,每个环的节点只可能有两条边,那么只用从度数为二的节点开始,判断连接的节点是否在一条环上就行。 AC代码: #include <iostream> #include <algorithm> #include <string> #include <vector> #in 阅读全文
posted @ 2020-11-06 13:58 樱与梅子 阅读(64) 评论(0) 推荐(0)