Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
33862 A21μΘ_wjy 【S】T3 C++ 通过 100 653 MS 293528 KB 832 2024-10-24 14:46:21

Tests(20/20):


#include<bits/stdc++.h> #define int long long using namespace std; const int maxn=3e3+7; vector<int> E[maxn]; int n; int rt; int siz[maxn][maxn]; int fa[maxn][maxn]; inline void DFS(int u){ siz[rt][u]=1; for(auto v:E[u]){ if(v==fa[rt][u])continue; fa[rt][v]=u,DFS(v); siz[rt][u]+=siz[rt][v]; } } int dp[maxn][maxn]; inline int DP(int u,int v){ if(u==v)return 0; if(dp[u][v])return dp[u][v]; return dp[u][v]=max(DP(u,fa[u][v]),DP(fa[v][u],v))+siz[u][v]*siz[v][u]; } signed main(){ cin>>n; for(int i=1;i<n;i++){ int u,v; cin>>u>>v; E[u].push_back(v),E[v].push_back(u); } for(int i=1;i<=n;i++)rt=i,DFS(i); int ans=0; for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)ans=max(ans,DP(i,j)); cout<<ans<<endl; }


测评信息: