博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bfs+dfs乱搞+类似拓扑排序——cf1182D
阅读量:5246 次
发布时间:2019-06-14

本文共 2030 字,大约阅读时间需要 6 分钟。

 代码不知道上了多少补丁。。终于过了

用类似拓扑排序的办法收缩整棵树得到x,然后找到x直连的最远的和最近的点

只有这三个点可能是根,依次判一下即可

另外题解的第一种方法时找直径,然后判两端点+重心+所有直连重心的叶子节点,感觉这样子复杂度爆炸啊。。(如果是遍历所有叶子节点的话)

#include
using namespace std;#define maxn 200005struct Edge{
int to,nxt;}e[maxn<<1];int head[maxn],tot;void init(){ memset(head,-1,sizeof head); tot=0;}void add(int u,int v){ e[tot].to=v;e[tot].nxt=head[u];head[u]=tot++;}int d[maxn],n,degree[maxn];void dfs1(int u,int pre,int deep){ if(degree[u]>2)return; if(degree[u]==1){ d[u]=deep;return; } for(int i=head[u];i!=-1;i=e[i].nxt){ int v=e[i].to; if(v==pre)continue; dfs1(v,u,deep+1); }}int dis[maxn];int judge(int u){ queue
q; memset(dis,0,sizeof dis); q.push(u);dis[u]=1; int tmp1=1,tmp2=degree[u]; while(q.size()){ int x=q.front();q.pop(); if(dis[x]!=tmp1){ tmp1=dis[x]; tmp2=degree[x]; } else if(tmp2!=degree[x])return 0; for(int i=head[x];i!=-1;i=e[i].nxt){ int y=e[i].to; if(dis[y])continue; dis[y]=dis[x]+1; q.push(y); } } return 1;}int main(){ init(); cin>>n; if(n==1){ puts("1"); return 0; } for(int i=1;i
>u>>v; add(u,v);add(v,u); degree[u]++,degree[v]++; } queue
q; int cnt=0,rt,tmp[maxn]; memcpy(tmp,degree,sizeof degree); for(int i=1;i<=n;i++) if(degree[i]==1) q.push(i),cnt++; while(cnt!=n){ int x=q.front();q.pop(); for(int i=head[x];i!=-1;i=e[i].nxt){ int y=e[i].to; if(tmp[y]==1)continue; else if(--tmp[y]==1){ q.push(y); cnt++; if(cnt==n)rt=y; } } } if(judge(rt)){cout<
d[i]){ Min=d[i],s=i; } if(s!=-1){ if(judge(s)){cout<

 

转载于:https://www.cnblogs.com/zsben991126/p/11009260.html

你可能感兴趣的文章
JAVA-初步认识-第五章-数组-常见操作-最值2
查看>>
5 ways to instantly appear more confident
查看>>
python与redis交互
查看>>
Harbor 搜索镜像及查看 tag
查看>>
VS2010 编译 boost thread库
查看>>
疯狂猜图(点击图片放大)
查看>>
文科妹学 GitHub 简易教程
查看>>
[LeetCode] Rotate List
查看>>
代码: js: 数值操作
查看>>
U3D的飞船太空射击例子中,使用coroutine
查看>>
RigidBody组件的Is Kinematic
查看>>
Razor语法大全
查看>>
maven的作用
查看>>
基于双向链表的栈和队列实现
查看>>
算法——递归算法求阶乘
查看>>
从 RequireJS 到 SeaJS(5)
查看>>
二叉树hdu1710
查看>>
失去英格兰,欧洲杯会失色?
查看>>
Javascript Dom编程艺术(第2版)读书笔记
查看>>
点击图片更换背景图案
查看>>