`1<<31` 会挂的啊
by WhisperingSnowflakes @ 2022-06-14 15:01:02
@[Eternal蒟蒻](/user/398190) `1<<31` 等于 $-2147483648$,右移成 $-1$ 后就死循环了
by WhisperingSnowflakes @ 2022-06-14 15:03:12
之前写状压我写了 `1<<35` 然后出来是零,搞了半天才知道 $1$ 是 int 数,要写 `1ll` 才行
by GI录像机 @ 2022-06-14 15:05:12
@[WhisperingSnowflakes](/user/721464) 改成了
```
void insert(ll v){
int x=0;
for(int i=(1ll<<31);i;i>>=1){
ll a=bool(v&i);
if(!trie[x][a]) trie[x][a]=++tot;
x=trie[x][a];
++cnt[x];
}
}
```
为什么还是不输出捏,有傻逼问题轻喷
by Celestial_Intertwine @ 2022-06-14 15:15:38
你的i是int啊
by WhisperingSnowflakes @ 2022-06-14 15:17:43
@[Eternal蒟蒻](/user/398190) 把i改成`ll`应该就行了
by WhisperingSnowflakes @ 2022-06-14 15:19:14
```
void insert(ll v){
int u=0;
for(ll i=(1ll<<31);i;--i){
ll z=(v>>i)&1;
if(!trie[u][z]) trie[u][z]=++tot;
u=trie[u][z];
++cnt[u];
}
}
```
emmm 还是没有
by Celestial_Intertwine @ 2022-06-14 15:19:47
@[WhisperingSnowflakes](/user/721464)
by Celestial_Intertwine @ 2022-06-14 15:20:01
@[Eternal蒟蒻](/user/398190) `ll z=(v>>i)&1;`
你这是把两个代码混一起了吧
by WhisperingSnowflakes @ 2022-06-14 15:22:06
前面的代码我试了一下改后能过样例的
by WhisperingSnowflakes @ 2022-06-14 15:22:31