随笔分类 - trie树
摘要:题目:[USACO14FEB]Auto-complete S 字典树套路题,字典树优化剪枝,加个cnt标记即可 代码: #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #include <ios
阅读全文
摘要:题目:lowbit求和 (没有找到哪个公开题库有这个题) 题意:求数组中任意一对数的异或和的lowbit的总和。 对于异或,二进制位中两个数相等则为0,反之为1,而且此题是要求lowbit,那我们利用这个,对于一个数字,他第i位二进制位k,则显然跟这个数字二进制前缀相同的数与这个数异或起来都是0,但
阅读全文
摘要:题目:[USACO 6.1.3] Cow XOR 没找到这题具体网址,这个题就是求最大异或区间(总长度尽量小,右端点尽量大) 嗯很显然一个[l,r]的异或和=s[r]s[l-1],那么现在有了优秀的n2做法 不难(很难)联想trie树,枚举1到n每次把1...i的异或和加入trie树中,然后跑一遍找
阅读全文
摘要:题目:[USACO12DEC]First! G 不太记得当时怎么想的了,但是显然,当一个字符串的前缀存在则他一定不是first,然后做法:对于每个字符串,把每个字符结尾跟他有相同前缀的单词的同元素建边,保证这个元素严格大于其他元素,然后判环,有环的话说明不能是first,反之则是。 代码: #inc
阅读全文
摘要:题目:[JSOI2009]电子字典 读完题后,暴力?确实,计算一下时间复杂度最坏情况下,20263*10000=1.5e8,卡一下常可以直接卡到7e7,最严格来说应该卡的过去,但是此题数据可以直接卡过。 代码: #include <cstdio> #include <cstdlib> #includ
阅读全文
摘要:题目:Secret Message 老师说的trie树入门题 对于每个密码,存入trie树,每个字符对应编号i,则sum[i],最后结尾的编号为j,cnt[j] 查询,每个字符对应编号为i,不存在直接返回ret,否则,ret+=cnt[i](某个密码是此查询的前缀),最后返回答案ret+sum[j]
阅读全文