Codeforce - Travelling Salesman
After leaving Yemen, Bahosain now works as a salesman in Jordan. He spends most of his time travelling between different cities.
He decided to buy a new car to help him in his job, but he has to decide about the capacity of the fuel tank.
The new car consumes one liter of fuel for each kilometer. Each city has at least one gas station where Bahosain can refill the tank,
but there are no stations on the roads between cities. Given the description of cities and the roads between them, find the minimum capacity for the fuel tank needed
so that Bahosain can travel between any pair of cities in at least one way. Input The first line of input contains T (1 ≤ T ≤ 64)that represents the number of test cases.
The first line of each test case contains two integers: N (3 ≤ N ≤ 100,000)and M (N-1 ≤ M ≤ 100,000), where Nis the number of cities, and Mis the number of roads.
Each of the following Mlines contains three integers: X Y C (1 ≤ X, Y ≤ N)(X ≠ Y)(1 ≤ C ≤ 100,000), where Cis the length in kilometers between city Xand city Y.
Roads can be used in both ways. It is guaranteed that each pair of cities is connected by at most one road, and one can travel between any pair of cities using the given roads. Output For each test case, print a single line with the minimum needed capacity for the fuel tank.
Sample Input
2
6 7
1 2 3
2 3 3
3 1 5
3 4 4
4 5 4
4 6 3
6 5 5
3 3
1 2 1
2 3 2
3 1 3
Sample Output
4
2
哎,这道题也是一样,以后写代码还是不要专门注意手速比较好,果然写对才是王之道,这一水题理当应该写对,是的是对的,
可是在对的情况下代码顺寻反了,判断条件没放对位置,搞得我找了好久,悲催,错点在注释中标记,用来告诫自己:
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
#include<queue>
using namespace std; #define INF 0x3f3f3f3f
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1 const int MX = 111111;
int road[MX]; struct Node {
int a, b, c;
}node[MX]; int n, m; bool comp(const Node& n1, const Node& n2) {
return n1.c < n2.c;
} int FindRoot(int r) {
return road[r] == r ? r : (road[r] = FindRoot(road[r]));
} void ini() {
scanf("%d %d", &n, &m);
for (int i = 1; i <= n; i++) {
road[i] = i;
}
for (int i = 0; i < m; i++) {
scanf("%d %d %d", &node[i].a, &node[i].b, &node[i].c);
}
sort(node, node + m, comp);
} int main()
{
//freopen("input.txt", "r", stdin);
int cas;
while (scanf("%d", &cas) != EOF) {
while (cas--) {
ini();
int ans = 0;
for (int i = 0; i < m; i++) {
int root1 = FindRoot(node[i].a);
int root2 = FindRoot(node[i].b);
if (root1 != root2) {
n--;
road[root2] = root1;
ans = max(ans, node[i].c);
}
if (n == 1) {
printf("%d\n", ans);/*自己仔细想想为什么这个不能放在root1上面进行判断,要知道如果数据只有一组,它就得出ans直接跳出了,因为循环只运行一次,因此会变得没有输出*/
break;
}
}
}
}
return 0;
}
Codeforce - Travelling Salesman的更多相关文章
- PAT A1150 Travelling Salesman Problem (25 分)——图的遍历
The "travelling salesman problem" asks the following question: "Given a list of citie ...
- Codeforces 914 C. Travelling Salesman and Special Numbers (数位DP)
题目链接:Travelling Salesman and Special Numbers 题意: 给出一个二进制数n,每次操作可以将这个数变为其二进制数位上所有1的和(3->2 ; 7-> ...
- Codeforces 374 C. Travelling Salesman and Special Numbers (dfs、记忆化搜索)
题目链接:Travelling Salesman and Special Numbers 题意: 给了一个n×m的图,图里面有'N','I','M','A'四种字符.问图中能构成NIMA这种序列最大个 ...
- PAT 甲级 1150 Travelling Salesman Problem
https://pintia.cn/problem-sets/994805342720868352/problems/1038430013544464384 The "travelling ...
- HDU 5402(Travelling Salesman Problem-构造矩阵对角最长不相交路径)
Travelling Salesman Problem Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 65536/65536 K (J ...
- 构造 - HDU 5402 Travelling Salesman Problem
Travelling Salesman Problem Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=5402 Mean: 现有一 ...
- Codeforces 914 C Travelling Salesman and Special Numbers
Discription The Travelling Salesman spends a lot of time travelling so he tends to get bored. To pas ...
- 1150 Travelling Salesman Problem(25 分)
The "travelling salesman problem" asks the following question: "Given a list of citie ...
- HDU 5402 Travelling Salesman Problem (构造)(好题)
大致题意:n*m的非负数矩阵,从(1,1) 仅仅能向四面走,一直走到(n,m)为终点.路径的权就是数的和.输出一条权值最大的路径方案 思路:因为这是非负数,要是有负数就是神题了,要是n,m中有一个是奇 ...
随机推荐
- jquery学习笔记----ajax使用
一.load() 加载页面数据 load(url,[data],[callback]) url:加载的页面地址,[data]传送的数据,[callback]加载完成时回调函数. 设计一个load.ht ...
- ora-01400 无法将NULL插入 ID 解决方法
问题描述:由于工作原因,把部分 字段改了,大体这样 StatementCallback; uncategorized SQLException for SQL [insert into test(sc ...
- Platform SDK、Windows SDK简介
Platform SDK及Windows SDK是由微软公司出品的一个软件开发包,向在微软的Windows操作系统和.NET框架上开发软件和网站的程序员提供头文件.库文件.示例代码.开发文档和开发工具 ...
- angularjs 菜鸟教程 版本1.4.6
最简angularJS webstorm代码提示 在 head 里面添加:<script src="https://ajax.googleapis.com/ajax/libs/angu ...
- C# Settings使用小结
本篇博客将介绍C#中Settings的使用. 首先介绍一个桌面程序中的例子,当我们新安装一个软件,软件启动后会有例如新手指导等窗体弹出来,每次都需要自己去关闭它.当然这些软件都会提供例如不再显示等功能 ...
- 进程控制理论,王明学learn
进程控制理论 一.进程 进程是一个具有一定独立功能程序的一次运行活动. 1.1进程特点 1.动态性:进程的实质是程序的一次执行过程,进程是动态产生,动态消亡的 2.并发性:任何进程都可以同其他进程一起 ...
- 数据库是.frm,.myd,myi备份如何导入mysql (转)
今天找了个案例,琢磨了半天,才分析大概出来,数据库是.frm,.myd,myi备份,不会导入mysql,到网上找了些资料,导入成功. 首先说一下这几种文件是干什么的,*.frm是描述了表的结构,*.M ...
- POJ 1741 Tree 树分治
Tree Description Give a tree with n vertices,each edge has a length(positive integer less than 1 ...
- UVA 12232 Exclusive-OR(并查集+思想)
题意:给你n个数,接着三种操作: I p v :告诉你 Xp = v I p q v :告诉你 Xp ^ Xq = v Q k p1 p2 … pk:问你k个数连续异或的结果 注意前两类操作可能会出现 ...
- HTTP基础08--追加协议
消除 HTTP 瓶颈的 SPDY HTTP 的瓶颈 Web 网站为了保存这些新增内容,在很短的时间内就会发生大量的内容更新;为了尽可能实时地显示这些更新的内容,服务器上一有内容更新,就需要直接把那些内 ...