关于80pts和一些小疑问
查看原帖
关于80pts和一些小疑问
331947
hegm楼主2022/10/27 16:24

做这道题的时候一直 WA on #6和#12

这份是 80pts

for(int i=1;i<=18;i++)
{
	for(int j=1,la;j<=n;j++)
	{
		fa[j][i]=fa[fa[j][i-1]][i-1];
		la=fa[j][i-1];
		mx[j][i]=max(mx[j][i-1],mx[la][i-1]);
		mn[j][i]=max(mn[j][i-1],mn[la][i-1]);
		if(mx[j][i-1]<mx[la][i-1])mn[j][i]=max(mn[j][i],mx[j][i-1]);
		else if(mx[j][i-1]>mx[la][i-1])mn[j][i]=max(mn[j][i],mx[la][i-1]); 
	}
}

这份是 AC

for(int i=1;i<=18;i++)
{
	for(int j=1,la;j<=n;j++)
	{
		fa[j][i]=fa[fa[j][i-1]][i-1];
		la=fa[j][i-1];
		mx[j][i]=max(mx[j][i-1],mx[la][i-1]);
		mn[j][i]=max(mn[j][i-1],mn[la][i-1]);
		if(mx[j][i-1]==mx[la][i-1])continue;
		mn[j][i]=max(mn[j][i],mx[j][i-1]+mx[la][i-1]-mx[j][i]); 
	}
}

两份代码只有最后有细微的差别,但是意义上是相等的,我想问下各位 dalao 这两者有何区别,导致 WA 了两个点?

如果你也是80 pts 可以试着把代码改成第二个看看能否 AC。

2022/10/27 16:24
加载中...