题意:

只有一个环,然后环都是0(环缩点相当于树的根),然后其余的输出到根的距离

思路:

可以从度为1的 开始搜 把那些分支全标记掉,然后再取没有标记掉的,BFS一下搞出距离。

具体这个标记:

倒着搜这样肯定没有多对一,标记掉度等于2的那些点就好了,度>2的要减减,而且环里的点的度不可能搜到度 = 2 因为环=点的度为2,他又连出一条边 度=3。

后话:

这种n个点 n条边/n-1条边的题都是套路了,要仔细考虑图特性:点的度(出度,入度),怎么搜(顺着搜,倒着搜,BFS好写还是DFS好写)

但是一旦确定思路,要多举反例,谨防入坑!!

#include<bits/stdc++.h>
using namespace std;
typedef long long LL; const int N=3e3+10; struct asd{
int to;
int next;
};
asd e[N*2];
int head[N],tol;
int n,m;
int pre[N];
bool vis[N],used[N]; void add(int u,int v)
{
e[tol].to=v;
e[tol].next=head[u];
head[u]=tol++;
} void solve1()
{
queue<int>q;
for(int i=1;i<=n;i++)
{
if(pre[i]==1)
{
q.push(i);
vis[i]=true;
}
} while(!q.empty())
{
int u=q.front();q.pop();
for(int i=head[u];~i;i=e[i].next)
{
int v=e[i].to;
if(vis[v]) continue;
if(pre[v]==2)
{
vis[v]=true;
q.push(v);
}
pre[v]--;
}
}
} int ans[N];
void solve2()
{
queue<int>q;
for(int i=1;i<=n;i++)
if(!vis[i])
{
ans[i]=0;
used[i]=true;
q.push(i);
}
while(!q.empty())
{
int u=q.front();q.pop();
for(int i=head[u];~i;i=e[i].next)
{
int v=e[i].to;
if(used[v]) continue;
ans[v]=ans[u]+1;
used[v]=true;
q.push(v);
}
}
} int main()
{
int u,v;
scanf("%d",&n); tol=0;
memset(head,-1,sizeof(head)); for(int i=0;i<n;i++)
{
scanf("%d%d",&u,&v);
add(u,v);
add(v,u);
pre[u]++;
pre[v]++;
} solve1();
solve2(); for(int i=1;i<=n;i++)
printf("%d ",ans[i]); return 0;
} /*
6
1 2
3 4
6 4
2 3
1 3
3 5 6
1 2
2 3
3 1
1 4
4 5
4 6 */

最新文章

  1. 个人对B/S项目的一些理解(二)
  2. windows 下使用Nginx替代apache作为服务器
  3. hdu 1166 线段树单点更新
  4. Spring整合Quartz实现持久化、动态设定时间
  5. 理解Windows中的路由表和默认网关
  6. Android学习笔记之百度地图
  7. Java SE7新特性之try-with-resources语句
  8. 系统数据文件和信息之附加组ID
  9. iOS Safari 中点击事件失效的解决办法
  10. 【转】Java中字符串中子串的查找共有四种方法(indexof())
  11. 第五章:最后一步准备,1.8的Json模型、状态描述机制详解
  12. mysql 建立加密连接
  13. 数据结构 B树、B-树、B+树、B*概念
  14. git 关联远程库(https协议)
  15. ffmpeg相关函数整理
  16. (function(){…})(); 与 (function(){…}());
  17. 软件加密工具-Virbox 开发者工具盒
  18. 为什么入门首选C语言
  19. commons-lang3工具类学习(二)
  20. 高斯消元 o(n^3) 取摸和不取摸

热门文章

  1. spring boot: EL和资源 (一般注入说明(二) @Service注解 @Component注解)
  2. Oracle_Exception_01_The Network Adapter could not establish the connection
  3. html中Meta属性
  4. Java自定义分页标签的实现
  5. HihoCoder1338 A Game(记忆化搜索)
  6. sql根据坐标算距离
  7. Popular Cows
  8. Parallel Programming-Concurrent Collections
  9. 洛谷 P4547 &amp; bzoj 5006 随机二分图 —— 状压DP+期望
  10. SQL常用语法及规则-表格的操作