有趣的 RE
查看原帖
有趣的 RE
879496
I_AK_IoI_2030楼主2024/6/11 17:05

刚才提交三次均在第 2 个测试点 RE,先把核心错误部分展示一下。

int renum(long long now){
	if(now==1) return fapow(cnt+1);
	int d=renum(now/2);
	d=(long long)d*(fapow((now/2)%(modu-1)*(cnt+1)%(modu-1))+1)%modu;
	if(now%2) d+=fapow(now%(modu-1)*(cnt+1)%(modu-1));
	return d%modu;
}
int main(){
	ans=(renum(n-1)+1)%modu;
}

所以这个使程序 RE 的“大数”不是 101810^{18} 之类,而是 1。因为所有正整数减 1 之后不断除以 2 总会得到 1,但 1 除外。所以输入 1 时递归无出口,于是 RE。

真是一次有趣的 RE。

2024/6/11 17:05
加载中...