题意

裸的仙人掌直径。

题解

先考虑基环树的直径:先算出每颗“树”的直径,再在环上跑DP

再考虑仙人掌的直径:把每个基环树缩成一条边,边长为基环树深度。

 #include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
const int N=;
const int M=;
int cnt,head[N];
int c[N*],dp[N],q[N*],ans;
int dfn[N],low[N],tot,fa[N];
int n,m;
struct edge{
int to,nxt;
}e[M*];
void add(int u,int v){
cnt++;
e[cnt].nxt=head[u];
e[cnt].to=v;
head[u]=cnt;
}
void getdp(int x,int y){
int l,r,i,m,p;
for(m=;y!=x;y=fa[y])c[++m]=dp[y];
for(c[++m]=dp[x],i=;i<m;i++)c[i+m]=c[i];
l=r=q[]=;p=m/;
for(i=;i<=m+p;i++){
while(l<=r&&i-q[l]>p)l++;
ans=max(ans,c[i]+c[q[l]]+i-q[l]);
while(l<=r&&c[i]>=c[q[r]]+i-q[r])r--;
q[++r]=i;
}
for(int i=;i<m;i++)dp[x]=max(dp[x],c[i]+min(i,m-i));
}
void Tarjan(int u){
dfn[u]=low[u]=++tot;
for(int i=head[u];i;i=e[i].nxt){
int v=e[i].to;
if(fa[u]==v)continue;
if(dfn[v]==){
fa[v]=u;
Tarjan(v);
low[u]=min(low[v],low[u]);
if(dfn[u]<low[v]){
ans=max(ans,dp[v]+dp[u]+);
dp[u]=max(dp[u],dp[v]+);
}
}else low[u]=min(low[u],dfn[v]);
}
for(int i=head[u];i;i=e[i].nxt){
int v=e[i].to;
if(fa[v]!=u&&dfn[u]<dfn[v])getdp(u,v);
}
}
int main(){
scanf("%d%d",&n,&m);
for(int i=,a,x;i<=m;i++){
scanf("%d%d",&a,&x);
for(int j=,y;j<a;j++){
scanf("%d",&y);
add(x,y);
add(y,x);
x=y;
}
}
Tarjan();
printf("%d",ans);
return ;
}

最新文章

  1. HashTable(散列表)
  2. Android--split()分割字符串特殊用法
  3. Spark入门实战系列--3.Spark编程模型(下)--IDEA搭建及实战
  4. Kmeans算法的K值和聚类中心的确定
  5. 【基础】PHP变量及变量作用域
  6. 12.Android之Tabhost组件学习
  7. RMB转换人民币大小金额
  8. leetcode 113 Path Sum II ----- java
  9. 无DLL线程注入
  10. Sequence用堆排序
  11. 转:CSS Overflow 属性
  12. HTTPCLIENT 模拟登陆
  13. [转载] Java集合框架之小结
  14. 基于Web在线考试系统的设计与实现
  15. 从零开始学安全(三十九)●FCK编辑器解析漏洞
  16. Scala中 zip或者zipWithIndex的用法
  17. thusc2017
  18. python全栈开发day72-django之Form组件
  19. day35 python学习GIL解释器锁
  20. C# Remoting 简单实现

热门文章

  1. 26.boost文件库
  2. PSSecurityException之PowerShell权限设置
  3. Codeforces 987B. High School: Become Human
  4. DotNetCore.1.0.1-VS2015Tools.Preview2.0.2 安装错误分析及解决办法(so far)
  5. jQuery获取单选框(复选框)选中的状态
  6. ActiveMQ学习笔记(2)----JMS的基本概念和模型
  7. Debian9.5系统DNS服务器BIND软件配置说明
  8. [SCOI2009]windy数 数位dp
  9. 关于CAS操作
  10. root用户删除文件提示:Operation not permitted