一个玄学问题
查看原帖
一个玄学问题
848964
hzoi_Shadow楼主2023/8/27 07:16

测评记录

这份代码多输入了两个数,没有TLE和WA,反而AC了,是因为数据太水了吗?

#include<bits/stdc++.h>
using namespace std;
#define ll long long 
#define sort stable_sort 
#define endl '\n'
struct node
{
    int nxt,to;
}e[30000];
int head[30000],f[30000],g[30000],cnt=0,ans=0;
void add(int u,int v)
{
    cnt++;
    e[cnt].nxt=head[u];
    e[cnt].to=v;
    head[u]=cnt;
}
void dfs(int x,int fa)
{
    f[x]=g[x]=0;
    for(int i=head[x];i!=0;i=e[i].nxt)
    {
        if(e[i].to!=fa)
        {
            dfs(e[i].to,x);
            if(f[e[i].to]+1>f[x])
            {
                g[x]=f[x];
                f[x]=f[e[i].to]+1;
            }
            else
            {
                g[x]=max(g[x],f[e[i].to]+1);
            }
        }
    }
    ans=max(ans,f[x]+g[x]);
}
int main()
{
    int n,i,u,v;
    cin>>n;
    for(i=1;i<=n;i++)//这里多输入了两个数
    {
        cin>>u>>v;
        add(u,v);
        add(v,u);
    }
    dfs(1,0);
    cout<<ans<<endl;
    return 0;
}
2023/8/27 07:16
加载中...