0%

CF-1016-G. Shorten the Array(异或字典树)

思路讲解

处理这种任意组合问题怎么搞?不可能把每个组合都求一遍时,应该怎么办那?

哈哈,其实那就要跳脱出这个组合啦。

看了提示,用异或字典树做。

这是因为字典树共享前缀(假设位数高的为前缀)。

AC代码

https://codeforces.com/contest/2093/submission/315036163

心路历程(WA,TLE,MLE……)

CE

这里的val值最好不要事先写上去,反正codeforces的编译器初始化空间大概是33MB左右,太小了。所以这种结构体可以不赋值。

1
2
3
4
struct Trie{
int val=INF /* ,digit=0 */ ,nxt0=0,nxt1=0;
// bool tag01=false; // tag01好像没有用,但也懒得删了,就当是方便调试
}tr[MAXN*14];