摘要:
//BY HZWER 1 #include 2 #include 3 4 using namespace std; 5 6 inline int read() 7 { 8 int x=0,f=1;char ch=getchar(); 9 while(ch'9... 阅读全文
摘要:
后缀数组+Manacher 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 9 using namespace std; 10 11 long long ... 阅读全文
摘要:
暴力直接解异或方程组,O(n^6)无法接受,那么我们考虑把格子分块,横着和竖着分别分为互不影响的块,这样因为障碍物最多不超过200个,那么块的个数最多为2*(800+200)=2000个,最后用bitset优化即可。 1 #include 2 3 using namespace std; ... 阅读全文
摘要:
根据题意,设$3n$次比较中胜了$w$次,负了$l$次,平了$d$次,所有场次中胜了$W$次,负了$L$次,平了$D$次。如果一场赢了,那么$w-l$就会$+1$,相同地,$W-L$也会$+1$;如果输了一场$w-l$就会$-1$,$W-L$也会$-1$。另外,再一局中如果有一次比较平了,那么这一场... 阅读全文
摘要:
首先考虑暴力,可以枚举每两个点求lca进行计算,复杂度O(n^3logn),再考虑如果枚举每个点作为lca去枚举这个点的子树中的点复杂度会大幅下降,如果我们将每个点递归考虑,每次计算过这个点就把这个点删掉,那么如果每次删掉的点是当前子树的重心,枚举点对的复杂度就只有O(logn),对于每次查询答案在... 阅读全文
摘要:
Treap 的各种操作,模板题,要再写几遍 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 9 using namespace std; 10 11 cl... 阅读全文
摘要:
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 9 using namespace std; 10 11 class Treap 12 { 13 ... 阅读全文
摘要:
将每k个数字求一个哈希值,存入可持久化线段树,直接查询即可 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 9 using namespace std;10 11 #defi... 阅读全文
摘要:
因为要求异或和最大,所以可以考虑从高位开始,向低位枚举尽可能接近~x的值,所以以二进制位为关键字,建立可持久化trie树,根据异或和的性质,XOR_SUM{i,j}=XOR_SUM{1,j} xor XOR_SUM{1,i-1},所以查询问题也可以解决了。 1 #include 2 #includ... 阅读全文
摘要:
将一个空间站分为天数个点,每次枚举天数,每增加一天就把对应天数的边连上,用网络流判定可行性,即-判断最大流是否不小于k,注意编号不要错位。通过此题,可见一些网络流题目需要用到网络判定方法,但虽然答案具有单调性,却不适合二份答案,原因有两个:一是网络流题目一般数据规模不会很大,二是网络流题目如果二分就... 阅读全文