Sicily 1024. Magic Island
2013-01-03 19:52
169 查看
/* 树的遍历,寻找最深的节点 注意在初始化的时候得清理所有的空间 */ /* Run Time: 0.35secs Run Memory: 1296KB */ #include <iostream> #include <vector> using namespace std; typedef struct Bridge{ int dest; //该桥目的地 int id; //该桥id,用于标识 int length; //长度 Bridge(int a, int b, int c){ dest = a; id = b; length = c; } }; int N; //city数,1-10000 int K; //首都位置,1-N vector<Bridge> map[10001]; //存储着整个map,共有10000个city,同一条桥会被双向存储,走的时候不走回头路即可 int MaxLength; void walk(int father, int now, int length){ for(int i=0; i<map[now].size(); i++){ if(map[now][i].dest != father){ int bufChild = map[now][i].dest; int newLength = length+map[now][i].length; if(newLength > MaxLength) MaxLength = newLength; walk(now, bufChild, newLength); } } } int main() { while (cin>>N && N){ cin >> K; //仅需清理需要使用的范围 for(int i=0; i<=N; i++) if(map[i].size() != 0) map[i].clear(); MaxLength = 0; int X, Y, D; for(int i=0; i<N-1; i++){ cin >> X >> Y >> D; Bridge buf_1(Y, i, D); map[X].push_back(buf_1); Bridge buf_2(X, i, D); map[Y].push_back(buf_2); } walk(-1, K, 0); cout << MaxLength << endl; } return 0; }
相关文章推荐
- Sicily 1140 国王的遗产
- <OJ_Sicily>1152简单的马周游问题
- <OJ_Sicily>Maze
- ACM: 动态规划题 sicily…
- <OJ_Sicily>1135飞越原野
- <OJ_Sicily>Pair
- <OJ_Sicily>Connection
- sicily 1198
- 【动态规划】Sicily1280 Permutation
- sicily: Highways
- sicily Sorting Algorithm 一道题玩一种排序之shell排序
- Sicily 算法设计题目
- 20460. 双11购物-中大sicily
- 第十五周:[Sicily]1504. Slim Span
- [sicily] 1000.函数求值
- 【Sicily】1002. 等价二叉树
- sicily考试模拟题-1003相连的1 1004isDAG? 1005相邻的数 1006单词变换
- Sicily 1000. 词法分析程序设计 **
- sicily1000. 输入输出LL(1)语法分析程序
- Sicily 1799. Slides