poj 1985 Cow Marathon

简介: 点击打开poj 1985 思路: 两次bfs找到树的直径 分析: 1 题目给定一棵树,找树上两点最远距离 2 利用两次bfs就可以,第一次bfs从1开始求出到最远的点,然后从这个点再次bfs回来求出ans即可 代码: #inclu...

点击打开poj 1985

思路: 两次bfs找到树的直径
分析:
1 题目给定一棵树,找树上两点最远距离
2 利用两次bfs就可以,第一次bfs从1开始求出到最远的点,然后从这个点再次bfs回来求出ans即可

代码:

#include<queue>
#include<vector>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;

const int MAXN = 50010;

struct Node{
    int x;
    int dis;
};

int n , m;
int ans , start;
vector<int>mat[MAXN];
vector<int>val[MAXN];
bool vis[MAXN];
queue<Node>q;

void bfs(){
    while(!q.empty()){
        Node tmp = q.front();
        q.pop();
        bool isNext = false;
        int x = tmp.x;
        int size = mat[x].size();
        for(int i = 0 ; i < size ; i++){
            if(!vis[mat[x][i]]){
                vis[mat[x][i]] = true;
                q.push((Node){mat[x][i] , tmp.dis+val[x][i]});
                isNext = true;
            }
        }
        if(!isNext){
           if(ans < tmp.dis){
               ans = tmp.dis;
               start = tmp.x;
           }
        }
    } 
}

int getAns(){
    memset(vis , false , sizeof(vis));
    vis[1] = true;
    q.push((Node){1 , 0});
    ans = 0;
    bfs();
    
    memset(vis , false , sizeof(vis));
    vis[start] = true;
    q.push((Node){start , 0});
    bfs();
    return ans;
}

void init(){
    for(int i = 0 ; i < MAXN ; i++){
        mat[i].clear();
        val[i].clear();
    }
}

int main(){
    char c;
    int x , y , v;
    while(scanf("%d%d" , &n , &m) != EOF){
         init();
         while(m--){
              scanf("%d %d %d %c" , &x , &y , &v , &c);
              mat[x].push_back(y);
              mat[y].push_back(x);
              val[x].push_back(v);
              val[y].push_back(v);
         }
         printf("%d\n" , getAns());
    }
    return 0;
}



目录
相关文章
codeforces1209——D.Cow and Snacks(并查集)
codeforces1209——D.Cow and Snacks(并查集)
81 0
|
算法
算法题:cow
**题目: 奶牛贝茜在她最喜欢的牧场中发现了一块石碑,上面刻有神秘的碑文。 碑文的文字似乎来自一种神秘的古代语言,可看作一个只包含 C,O,W 三种字符的字符串。 尽管贝茜无法解密该文字,但是她很欣赏 C,O,W 按顺序构成她最喜欢的单词 COW。
70 0
POJ-Silver Cow Party (最短路)
POJ-Silver Cow Party (最短路)
72 0
|
缓存 块存储 开发工具
CephFS 常用命令以及问题分析
最近公司的生产环境已经开始使用 CephFS 作为文件系统存储,记录一下使用过程中遇到的问题,已经一些常用的命令。
3123 0
|
存储 网络协议 开发工具
九爷带你部署Mfs分布式文件系统
Mfs分布式文件系统 前言:前面我们学习过NFS,以及虚拟化课程的时候我们学习过openfiler,这两个都是属于存储服务器。但是他们有着共同的缺点,就是性能不好,因为都是通过共享方式共享一个存储空间,使得服务器不堪重负,会出现超时的问题,而且存在着单点故障问题,尽管可以用rsync同步数据到另外一台服务器上做备份,但性能方便没有任何提升。
765 0
题解 P2863 【[USACO06JAN]牛的舞会The Cow Prom】
题目链接 赤裸裸的板子,就加一个特判就行。直接上代码 #include #include #include using namespace std; bool ins[10000000];//记录入没入栈。
1250 0