首页 > 其他 > 详细

[CF1292C] Xenon's Attack on the Gangs

时间:2020-04-11 13:44:07      阅读:74      评论:0      收藏:0      [点我收藏+]

前言

我水一次题解。我是真的真的真的没有时间了,昨晚高考课任务太多了,完全完成一道题就十点半了。这个看懂题意就贼费劲,在晚新闻之前真的没有时间写题了。水一次,真的就这一次,讲完之后一定补上。我谢罪!

题目

原题链接

解说

解说地址(晚自习一定补上自己的思路,谢罪!)

代码

技术分享图片
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 const int maxn=3000+5;
 5 int n,rt,p[maxn][maxn],s[maxn][maxn];
 6 ll f[maxn][maxn],ans;
 7 vector<int> G[maxn];
 8 void Build(int u){
 9     s[rt][u]=1;
10     for(int v: G[u]) if(v^p[rt][u]){
11         p[rt][v]=u;
12         Build(v);
13         s[rt][u]+=s[rt][v];
14     }
15 }
16 ll dp(int u,int v){
17     if(u==v) return 0;
18     if(f[u][v]) return f[u][v];
19     return f[u][v]=max(dp(u,p[u][v]),dp(v,p[v][u]))+s[u][v]*s[v][u];
20 }
21 int main(){
22     scanf("%d",&n);
23     for(int i=1;i<n;i++){
24         int x,y;
25         scanf("%d%d",&x,&y);
26         G[x].push_back(y);
27         G[y].push_back(x);
28     }
29     for(int i=1;i<=n;i++){
30         rt=i;
31         Build(i);
32     }
33     for(int i=1;i<=n;i++){
34         for(int j=1;j<=n;j++){
35             ans=max(ans,dp(i,j));
36         }
37     }
38     printf("%lld",ans);
39     return 0;
40 }
View Code

(C++ 11运行)

 

幸甚至哉,歌以咏志。

[CF1292C] Xenon's Attack on the Gangs

原文:https://www.cnblogs.com/DarthVictor/p/12678634.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!