HDU_2586_How far away ?_MLE_floyd
2016-04-14 22:56
302 查看
#include<iostream> #include<sstream> #include<string> #include<vector> #include<list> #include<set> #include<map> #include<stack> #include<queue> #include<algorithm> #include<cmath> #pragma warning(disable:4996) using std::cin; using std::cout; using std::endl; using std::stringstream; using std::string; using std::vector; using std::list; using std::pair; using std::set; using std::multiset; using std::map; using std::multimap; using std::stack; using std::queue; int main() { //freopen("input.txt", "r", stdin); //freopen("output.txt", "w", stdout); int T; cin >> T; while (T--) { int vertex, query; cin >> vertex >> query; vector<vector<int>>matrix(vertex, (vector<int>)vertex); for (int i = 0; i < vertex - 1; i++) { int first, second, weight; cin >> first >> second >> weight; matrix[first - 1][second - 1] = matrix[second - 1][first - 1] = weight; } for (int k = 0; k < vertex; k++) { for (int i = 0; i < vertex; i++) { for (int j = 0; j < vertex; j++) { if (i == j) { continue; } if (!matrix[i][j]) { matrix[i][j] = matrix[i][k] + matrix[k][j]; } else { matrix[i][j] = std::min(matrix[i][j], matrix[i][k] + matrix[k][j]); } } } } for (int i = 0; i < query; i++) { int first, second; cin >> first >> second; cout << matrix[first - 1][second - 1] << endl; } } return 0; }
相关文章推荐
- CodeForces 622A Infinite Sequence
- Ruby notes #1 Environment setup on Win32 platform
- 邮箱伪造详解2013-10-04
- NSOperation
- 结队--复利计算再升级
- 《Linux内核分析》第八周笔记 进程的切换和系统的一般执行过程
- NSUserDefaults-01
- 0414复利计算6.0-----结对编程
- iOS 数据序列化,NSCoding, NSCoder
- Apache+Tomcat+AJP
- PHP——数组函数_学习笔记
- PHP基础语法
- 错排公式(转)
- poj 1459 Power Network 最大流
- 串的模式匹配算法
- linux下vim和bash配置文件
- 复利计算器5
- 复利计算器再升级
- 原型(3) JavaScript原型链详细介绍
- 【HDU1828】Picture【线段树】【矩形周长并】