01 2021 档案

摘要:Splay是一个功能强大的数据结构,可以实现一些平衡树无法完成的操作 例题P3391 【模板】文艺平衡树 和平衡树一样,Splay同样也有左旋右旋的操作。 并且Splay中还有一个核心操作,那就是将一个节点移到另一个节点下面,并保证整棵树的中序遍历不变。 那么很多操作就可以通过这两个函数得出 比如在 阅读全文
posted @ 2021-01-29 11:12 DSHUAIB 阅读(137) 评论(0) 推荐(0)
摘要:首先看到这到题,很容易想到AC自动机,但这个题它求的是方案,并且没有告诉我们母串,所以这个时候我就们可以尝试用搜索枚举每一种方案 部分代码 void dfs(int now, int j, bool flag)//now代表枚举了的文章长度,j代表AC自动机的下标,flag代表当前的文章是否合法 { 阅读全文
posted @ 2021-01-05 11:15 DSHUAIB 阅读(99) 评论(0) 推荐(0)
摘要:这道题其实就是一道裸的AC自动机板子题,只需要在建tire图的时候稍微处理一下,因为它求的是子串的最长前缀,那么我们可以将子串再划分为许多长度不同的前缀就行了,然后再记录一下划分出来的前缀分别属于哪一个子串。 代码 #include<iostream> #include<cstdio> #inclu 阅读全文
posted @ 2021-01-04 12:02 DSHUAIB 阅读(74) 评论(0) 推荐(0)
摘要:这到题一眼看去,似乎就是个AC自动机,然后迅速的打出了AC自动机的板子。 最开始思路 最开始我想的是,不就判断一下长度就行了吗,把每一个单词的长度求出来,在AC自动机的时候每次用当前位置的下标减去单词长度,如果小于等于目前的前缀长度,就更新答案,然后迅速地打出代码,发现只有70分,仔细思考了一下,发 阅读全文
posted @ 2021-01-04 08:50 DSHUAIB 阅读(74) 评论(0) 推荐(0)
摘要:P2444 [POI2000]病毒 这道题直接输出都可以得60分,如果再写个随机算法,那么就可以用O(1)的时间复杂度解决这道题 首先看到这到题,不难想到暴力去枚举每一位,然后再用AC自动机,因为每个点最多只会被访问一次,所以时间复杂度可以道玄学的O(n) 代码 #include<iostream> 阅读全文
posted @ 2021-01-03 22:16 DSHUAIB 阅读(84) 评论(0) 推荐(0)
摘要:P3121 [USACO15FEB]Censoring G 这道题很明显是一道AC自动机的题目。 可以先将AC自动机板子打出来,打出来后该如何做这到题?可以考虑暴力做法,一个while循环一直扫描,每次扫描到了直接删除,但很明显,这样是会超时的。 通过标签观察我们发现,重新出现的单词是跟前面的部分没 阅读全文
posted @ 2021-01-03 15:00 DSHUAIB 阅读(111) 评论(0) 推荐(0)
摘要:为了方便统一,本文中下标均从0开始 KMP P3375 【模板】KMP字符串匹配 对于两个字符串S1,S2(S1>S2),求S2在S1中的出现位置 例如S1=ababa,S2=aba 在这个样例中答案就是0 2 首先考虑暴力做法,对于S1的每一个字符,我们都一该字符开始往后与S2对比.时间复杂度为$ 阅读全文
posted @ 2021-01-03 11:06 DSHUAIB 阅读(87) 评论(0) 推荐(0)