POJ 1985 Cow Marathon
此题求的是树的最长链, 要注意此题不能用dis[maxn][maxn]来记录a, b两点的距离,这样会超空间, 也就是超内存,要用另一种储存方式储存。此题思想很简单, 随便选一个点,搜此点能到的最远距离, 并记录最远距离的点, 然后再从最远距离的点搜这点能到的最远距离, 这个dis就是答案。
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <queue>
#define mem(a) memset(a, 0, sizeof(a))
using namespace std;int m, n, ans, flag, num, head[100005];
bool vis[100005];struct eage
{int to;int next;int eg;
}e[100005];void add(int a, int b, int eg)
{e[num].to = b;e[num].eg = eg;e[num].next = head[a];head[a] = num++;e[num].to = a;e[num].eg = eg;e[num].next = head[b];head[b] = num++;
}void bfs(int a)
{int dis = 0, he, to;queue<int> q;q.push(a);q.push(dis);while(!q.empty()){he = q.front();vis[he] = 1;q.pop();dis = q.front();q.pop();to = head[he];while(vis[e[to].to] == 1&&to != -1){to = e[to].next;}while(to != -1&&vis[e[to].to] == 0){q.push(e[to].to);q.push(dis + e[to].eg);if(ans < (dis + e[to].eg))ans = dis + e[to].eg, flag = e[to].to;to = e[to].next;while(vis[e[to].to] == 1&&to != -1){to = e[to].next;}}}
}int main(int argc, char *argv[])
{int i, j, k, l;ans = 0;num = 0;mem(e);mem(vis);memset(head, -1, sizeof(head));scanf("%d%d",&m, &n);for(i = 0;i < n;i++){scanf("%d%d%d%*c%*c%*c", &j, &k, &l);add(j, k, l);}bfs(1);mem(vis);bfs(flag);printf("%d\n", ans);return 0;
}
POJ 1985 Cow Marathon相关推荐
- poj 1985 Cow Marathon 【树的直径】
求树的直径 /* POJ:1985 Cow Marathon 2014/10/12/21:18 Yougth*/ #include <cstdio> #include <iostre ...
- 【树的直径】 POJ 1985 Cow Marathon
给出一棵树 ,和边的权值 求权值最长的一条直径 两次bfs求 第一次以任意点开始 BFS求出第一个端点 第二次以第一次得到的端点 BFS求出第二个端点 #include <cstdio> ...
- POJ 3660 Cow Contest [Floyd]
POJ - 3660 Cow Contest http://poj.org/problem?id=3660 N (1 ≤ N ≤ 100) cows, conveniently numbered 1. ...
- poj1985 Cow Marathon(树的直径#入门)
poj1985 Cow Marathon(树的直径) Time Limit: 2000MS Memory Limit: 30000K Total Submissions: 9110 Accepted: ...
- POJ 3660 Cow Contest 传递闭包+Floyd
原题链接:http://poj.org/problem?id=3660 Cow Contest Time Limit: 1000MS Memory Limit: 65536K Total Subm ...
- [POJ 3270]Cow Sorting
Description Farmer John's N (1 ≤ N ≤ 10,000) cows are lined up to be milked in the evening. Each cow ...
- poj 3045 Cow Acrobats (贪心!!不是二分,)
农夫的N只牛(1<=n<=50,000)决定练习特技表演. 特技表演如下:站在对方的头顶上,形成一个垂直的高度. 每头牛都有重量(1 <= W_i <= 10,000)和力量( ...
- POJ 3263-Tallest Cow
Description FJ's N (1 ≤ N ≤ 10,000) cows conveniently indexed 1..N are standing in a line. Each cow ...
- POJ 3660 Cow Contest
Description N (1 ≤ N ≤ 100) cows, conveniently numbered 1..N, are participating in a programming con ...
最新文章
- rpm命令,yum命令大全
- 工商企业管理对计算机水平的要求,对工商企业管理的分析
- mysql 表中添加数据类型_MySQL数据表添加字段(三种方式)
- 【测试工程师面试】面试官热衷询问的N个问题
- map型字段 mongodb_MongoDB极简教程
- Intellij 中的git操作 转!
- 自主巡航——高精度地图制作
- 女神被打码了?一笔一划脑补回来,效果超越Adobe | 已开源
- ae批量修改字体_AE脚本pt_TextEdit v2.5批量修改文字图层样式字体大小属性编辑工具...
- 分享苹果电脑和乔布斯的十项成功秘诀
- 平均获客成本_互联网金融获客成本
- python:计划持有基金n年,求n年的每年复利_利率
- HDOJ 6608 Fansblog
- 超详细讲解无迹卡尔曼(UKF)滤波(个人整理结合代码分析)
- 【面向对象程序设计】侩子手游戏(Java、JavaFX)
- 写给MatheMagician读者的新年来信2
- 湖南大学与四川大学计算机,四川大学和湖南大学哪个更好一点?都是高校吗?...
- 美团codeM资格赛——世界杯
- Xshell Error Report,Program has stopped working
- ThePowderToy 入门教程