模拟赛T4,调了0.5h结果是UB,心态崩了。
我的奇怪习惯是写一个 namespace solve,然后调用 solve::main。
solve::main 是 void 类型。
这次我手贱敲了 int 类型,然后很诡异,
int main()
{
finput("fair.in");
foutput("fair.out");
int t,n,i,u,v,w;
scanf("%d",&t);
while(t--)
{
res=-1;
memset(f,-0x3f,sizeof f);
scanf("%d",&n);
for(i=1; i<=n; ++i)
{
scanf("%d",d+i);
e[i].clear();
}
for(i=1; i<n; ++i)
{
scanf("%d %d %d",&u,&v,&w);
e[u].emplace_back(v,w);
e[v].emplace_back(u,w);
}
dfs1(1,-1);
dfs2(1,-1);
printf("%d\n",res);
}
return 0;
}
```
这段代码多测时不!停!止!
`void`$\gets$`int` 就对了,请问为啥。