为什么逻辑运算写在表达式内会tle
查看原帖
为什么逻辑运算写在表达式内会tle
87799
xh39楼主2021/10/15 13:48
	for(i=1;i<=15000000;i++){ //枚举c 
		for(j=(i<<1);j<=30000000;j+=i){ //枚举a
				ans[j]+=((j-i)==(j^i));
		}
	}

以上写法跑了8.8s。把循环里的累计答案改成下面这样1.6s就跑完了。

if((j-i)==(j^i)){
	ans[j]++;
}

求助为什么这一个表达式会造成这么大的区别,居然多用了好几倍的时间。

2021/10/15 13:48
加载中...