玄学错误
  • 板块学术版
  • 楼主ass_wecan
  • 当前回复11
  • 已保存回复11
  • 发布时间2021/8/6 17:10
  • 上次更新2023/11/4 11:48:22
查看原帖
玄学错误
505805
ass_wecan楼主2021/8/6 17:10
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);
}

求各路神仙看看我哪里错了

2021/8/6 17:10
加载中...