关于e[x].size()-1
  • 板块学术版
  • 楼主hxhhxh
  • 当前回复6
  • 已保存回复6
  • 发布时间2023/2/18 09:07
  • 上次更新2023/10/24 00:31:28
查看原帖
关于e[x].size()-1
429147
hxhhxh楼主2023/2/18 09:07

RT,今天我写树形dp,使用辅助数组进行转移,然后写出了以下代码:

	for(int i=e[x].size()-1;i>=0;i--){
		if(e[x][i]==fa) suf[i]=suf[i+1];
		else suf[i]=suf[i+1]*(dp[e[x][i]][0]*2+dp[e[x][i]][2])%mod;
	}

它在本地一切正常,甚至连-Wsign-compare都没有(我开了-Wall -Wextra),但是它在CF上RE了。

经过检查,e[x].size()unsigned类型的,当压根没有边的时候它减一自然溢出变成了4294967295

我想问:

  1. 为什么在本地一切正常?
  2. 在那些地方会出现这种现象?
  3. 如何让Dev检测出这种问题(或者说不能)?
2023/2/18 09:07
加载中...