求助厌氧程序(开 -O2 RE)
  • 板块学术版
  • 楼主yukimianyan
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/10/15 17:25
  • 上次更新2023/10/27 07:24:40
查看原帖
求助厌氧程序(开 -O2 RE)
509229
yukimianyan楼主2022/10/15 17:25

code

简化后的代码如下:

//n<=15,pw[n]=3^n
int n,pw[21];
bool vis[14348907];
int getbit(int x,int k){return (x/pw[k])%3;}
int main(){
	for(int i=pw[0]=1;i<=18;i++) pw[i]=pw[i-1]*3;
	//对 vis 赋值,保证没有越界
	for(int i=0;i<pw[n];i++){
		if(!vis[i]) continue;
		for(int j=0;j<n;j++){
			if(!getbit(i,j)) vis[i+pw[j]]=1,vis[i+pw[j]*2]=1;
		}
	}
	return 0;
}

没开 -O2 之前能过,开了之后显示 getbit(i,j) 浮点数运算错误(估计是除以 0),gdb 调试的时候显示 j = <optimized out>,那么是什么地方出问题了呢?

2022/10/15 17:25
加载中...