随笔分类 -  字符串 trie

摘要:【题目】C. Perfect Security 【题意】给定长度为n的非负整数数组A和数组B,要求将数组B重排列使得A[i]^B[i]的字典序最小。n<=3*10^5,time=3.5s。 【算法】异或Trie 【题解】对一个数组O(n log n)建立异或Trie,就能O(log n)判断任意一个 阅读全文
posted @ 2018-03-11 19:42 ONION_CYC 阅读(440) 评论(0) 推荐(0)
摘要:【题目】D. Acyclic Organic Compounds 【题意】给定一棵带点权树,每个点有一个字符,定义一个结点的字符串数为往下延伸能得到的不重复字符串数,求min(点权+字符串数),n<=300000,time=3s。 【算法】trie合并||hash+线段树合并||dsu on tre 阅读全文
posted @ 2017-12-06 19:40 ONION_CYC 阅读(398) 评论(0) 推荐(0)
摘要:【算法】trie树+xor路径 【题解】 套路1:统计从根到每个点的xor路径和,由于xor的自反性,两个点到根的xor路径和异或起来就得到两点间路径和。 然后问题就是找到n个值中异或值最大的两个值,考虑枚举每个数字,对于一个数找到与其异或和最大的数。 套路2:对所有数值二进制建01-trie,对于 阅读全文
posted @ 2017-08-09 19:31 ONION_CYC 阅读(241) 评论(0) 推荐(0)
摘要:【算法】trie 【题解】 为了让数据有序,求lowbit无法直接排序,从而考虑倒过来排序,然后数据就会呈现出明显的规律: 法一:将数字倒着贴在字典树上,则容易发现两数的lowbit就是它们岔道结点的深度,所以先建树后对于一个数字依次把每次分岔开的另一边的size乘上权值累加答案。 法二:从高位到低 阅读全文
posted @ 2017-06-26 19:49 ONION_CYC 阅读(260) 评论(0) 推荐(1)
摘要:把字符串原样复制一遍放在后面是惯用套路,此时字符串数组开两倍! ★字符串算法的核心是构造失配指针! 【字符串哈希】 双蛤习取模保险,毕竟连自然溢出都是能卡的…… 例题:【CodeForces】961 F. k-substrings 字符串哈希+二分 用于O(1)判断两个字符串是否相等:对于s[i~j 阅读全文
posted @ 2017-03-25 22:47 ONION_CYC 阅读(526) 评论(0) 推荐(1)
摘要:【算法】 【算法】网络流 【算法】树 【算法】数学 ————【专题】生成树计数(矩阵树定理) ————【专题】计数问题(排列组合,容斥原理,卡特兰数) ————【算法专题】卡特兰数(计数数列) ————【专题】数论 ————【专题】概率和期望 【算法】动态规划 【算法】数据结构 ————【专题】平衡 阅读全文
posted @ 2016-08-10 21:08 ONION_CYC 阅读(2144) 评论(0) 推荐(6)