摘要:
"trie的经典应用" -- by hzwer我们把每个点到根的xor值记下来,然后找出两个xor值最大的即可(因为(a ^ c) ^ (b ^ c) = a ^ b)于是用trie把每个数的二进制位记下来,每次query的时候利用贪心,试图走到另一个儿子即可。 1 /**************... 阅读全文
摘要:
点分治。。。尼玛啊!蒟蒻怎么做的那么桑心%>_ 11 #include 12 13 using namespace std; 14 const int N = 100005; 15 16 struct edge { 17 int next, to, v; 18 edge()... 阅读全文
摘要:
典型的点分治。。。可惜有一部不会做。。。如何找出某个点p的子树中过p的链的数量?、、、(语文不好不要打我)于是Orz cxjyxx,可以先求出所有的答案再减掉不是的答案(说了语文不好不要打我了啊>_ 11 #include 12 13 using namespace std; 14 const... 阅读全文
摘要:
首先,列方程我们定义s[i] = 10 ^ ((int) log(i))于是,f[i] = (f[i - 1] *s[i] + i) % p反正总之就是个沙茶递推然后我们来看优化。。。怎么感觉像矩阵乘法呢?发现要按照log(i)即i的位数分类讨论,在相同位数的时候令矩阵为s[i]0 01 1 00 ... 阅读全文
摘要:
看来蒟蒻我还是直接退役算了。。。此题就是维护子树的和,删除子树中当前最大元素,并且可以合并两个子树信息,想到了左偏树。。。做完了233 1 /************************************************************** 2 Problem:... 阅读全文