Time to live
2012-08-31 08:58
218 查看
http://acm.hust.edu.cn:8080/judge/problem/viewProblem.action?id=24028
其实bfs 和dfs 两个的原理是一样的,都是找到最深的,不过都需要两遍
第一次找到深度最深的,第二次以深度最深的 再找最深的
View Code
其实bfs 和dfs 两个的原理是一样的,都是找到最深的,不过都需要两遍
第一次找到深度最深的,第二次以深度最深的 再找最深的
View Code
#include<iostream> #include<string.h> #include<stdio.h> #include<algorithm> #include<vector> #include<queue> #define inf ~0U>>1 #define maxn 100000 using namespace std; int n; vector<int>node[maxn]; pair<int,int>ans; int visit[maxn]; void init() { int a,b; for(int i=0;i<n;i++) node[i].clear(); for(int i=1;i<n;i++) { cin>>a>>b; node[a].push_back(b); node[b].push_back(a); } } void bfs(int root) { queue<pair<int,int> >q;//带有两个属性的队列 q.push(make_pair(root,0));//首先根入队 ans.second=0; memset(visit,0,sizeof(visit)); visit[root]=1; while(!q.empty()) { pair<int,int>temp=q.front(); q.pop(); if(temp.second>ans.second) { ans.second=temp.second; ans.first=temp.first; } for(int i=0;i<node[temp.first].size();i++) if(!visit[node[temp.first][i]])//没有访问入队 { visit[node[temp.first][i]]=1; q.push(make_pair(node[temp.first][i],temp.second+1)); } } } int main() { int test; for(cin>>test;test;test--) { cin>>n; init(); bfs(0);//两次bfs,第一次假设0为根,寻找深度最深的点 bfs(ans.first); //第二次,以深度最深的点位根,在寻找深度最深的点 if(ans.second%2) cout<<ans.second/2+1<<endl;//偶数答案一半加1 else cout<<ans.second/2<<endl;//奇数答案一半 } return 0; }
相关文章推荐
- IP协议里的Time To Live(TTL)
- 关于ehcache的timeToLiveSeconds和timeToIdleSeconds
- TTL(time to live)生存时间
- 关于ehCache配置timeToLiveSeconds失效的问题总结
- SPOJ 9126 Time to live
- 生存时间TTL(time to live)
- 关于Ehcache缓存中timeToLiveSeconds和timeToIdleSeconds
- Mongodb - TTL(time to live)特性
- 关于Ehcache缓存中timeToLiveSeconds和timeToIdleSeconds区别
- ehcache中的timeToLiveSeconds和timeToIdleSeconds时间
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十五节 设置本机默认的生存时间(time-to-live:TTL)值
- IP协议里的Time To Live(TTL)
- ping 命令出现time to live exceeded原因及解决办法
- [教程]MongoDB 从入门到进阶 (概要 以及 高级索引篇 TimeToLive GeoNear)
- 关于ehcache缓存中eternal及timeToLiveSeconds和timeToIdleSeconds的说明
- TTL -- Time to Live
- JBoss 系列八十七: JBoss 中 JMS 消息设定 TimeToLive 的一个误解
- 关于Ehcache缓存中timeToLiveSeconds和timeToIdleSeconds
- 关于Ehcache缓存中timeToLiveSeconds和timeToIdleSeconds
- ehcache中的timeToLiveSeconds和timeToIdleSeconds时间