摘要: 题目大意: 给你一些子网,求它们在整个网段的补集。 思路: 将子网转换成二进制建一棵Trie,直接DFS搜到没有了就记下来输出。注意:所给的子网会有交集,若搜到结尾就不向下搜了。 代码: 阅读全文
posted @ 2016-08-09 19:04 HHshy 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 求一些字符串在一段文章中出现的次数。 思路: AC自动机的经典应用,建完自动机直接将队列里的元素调Fail指针记录即可。 代码: 阅读全文
posted @ 2016-08-09 18:55 HHshy 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 有一个长度为n的序列,求1≤l1≤r1<l2≤r2≤n使得(⊕r1i=l1ai)+(⊕r2i=l2ai)最大,输出这个最大值。 思路: 用Trie求出前缀异或和以及后缀异或和,再求出前缀异或和以及后缀异或和中最大的,前后相加,求最大值。用可持久化Trie求异或和也可(较慢)。 代码: T 阅读全文
posted @ 2016-08-09 18:41 HHshy 阅读(1450) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 有n个字符串,编号为1~n,求每一个字符串在其他字符串中以它为后缀的字符串中编号第k小的字符串的编号。 思路: 将字符串倒过来建Trie,记录每个结尾节点的编号(可能会有重复,所以开一个vector记录)。再对trie树进行dfs序,记录结尾节点的子树区间。区间第k小,自然用可持久化线段 阅读全文
posted @ 2016-08-09 18:19 HHshy 阅读(530) 评论(0) 推荐(0) 编辑