inline void Insert(int x,int y)
{
memset(vis,0,sizeof(vis));
for(register int i=0;i<(1<<9);++i)
if(!vis[i|(x>>9)])
t[i|(x>>9)][x&N]=(t[i|(x>>9)][x&N]+y)%mod,vis[i|(x>>9)]=1;
}
这段代码运行到一半突然就不动了,实在是找不到原因
然后我测试了一下每次循环时 i 是否 <(i<<9) ,结果…… 结果全都是1,但是代码就是不走了
这是加上了测试代码的代码:
inline void Insert(int x,int y)
{
memset(vis,0,sizeof(vis));
for(register int i=0;i<(1<<9);++i)
if(!vis[i|(x>>9)])
t[i|(x>>9)][x&N]=(t[i|(x>>9)][x&N]+y)%mod,vis[i|(x>>9)]=1,cout<<(i<(1<<9);
}
求各路神仙看看我哪里错了