九度OJ 1017 还是畅通工程
#include <iostream>
#include <string.h>
#include <sstream>
#include <math.h>
#include <vector>
#include <stack>
#include <algorithm>
using namespace std; struct Node
{
int startPoint;
int endPoint;
int len;
bool operator <(const Node other) const
{
return len<other.len?true:false;
}
};
int findParent(int isAdded[],int point)
{
if(isAdded[point]==-)
return point;
else
return findParent(isAdded,isAdded[point]);
}
int main()
{
int n = ;
cin>>n;
while(n!=)
{
Node areaPoint[];
int totalCost = ;
if(n==)
{
cout<<totalCost<<endl;
cin>>n;
continue;
}
int isAddEd[];
int i;
for(i=;i<;i++)
isAddEd[i] = -;
int edge = ;
for(i=;i<n*(n-)/;i++)
{
cin>>areaPoint[i].startPoint>>areaPoint[i].endPoint>>areaPoint[i].len;
}
sort(areaPoint,areaPoint+n*(n-)/); for(i=;i<n*(n-)/;i++)
{
int start = areaPoint[i].startPoint;
int rear = areaPoint[i].endPoint; int startParent = findParent(isAddEd,start); int rearParent = findParent(isAddEd,rear);
//cout<<start<<" "<<rear<<" "<<startParent<<" "<<rearParent<<endl; if(startParent == rearParent)
{
continue;
}
else
{
isAddEd[startParent] = rearParent;
totalCost += areaPoint[i].len;
edge++;
if(edge==n-)
break;
}
}
cout<<totalCost<<endl;
cin>>n;
} return ;
}
- 题目描述:
-
某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。
- 输入:
-
测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( < 100 );随后的N(N-1)/2行对应村庄间的距离,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间的距离。为简单起见,村庄从1到N编号。
当N为0时,输入结束,该用例不被处理。
- 输出:
-
对每个测试用例,在1行里输出最小的公路总长度。
- 样例输入:
-
3
1 2 1
1 3 2
2 3 4
4
1 2 1
1 3 4
1 4 1
2 3 3
2 4 2
3 4 5
0
- 样例输出:
-
3
5
解题思路:
存储每一条边,以及对应的2个端点,按边的长度排序
对每一条边进行遍历,如果该边的2个端点的父节点相同,表示当前边不能加入,如果加入则会形成环,否则加入,并修改起点的父亲的父亲为终点的父亲。
每加入一条边,计数器加1,当计数器为n-1时结束循环,避免后面没必要的遍历。
九度OJ 1017 还是畅通工程的更多相关文章
- 九度OJ 1012:畅通工程 (最小生成树)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:7052 解决:3034 题目描述: 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工 ...
- 九度OJ 1024:畅通工程 (最小生成树)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3979 解决:1354 题目描述: 省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有 ...
- 九度OJ 1017:还是畅通工程 (最小生成树)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4789 解决:2382 题目描述: 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府"畅通工程&quo ...
- 【九度OJ】题目1017:还是畅通工程 解题报告
[九度OJ]题目1017:还是畅通工程 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1017 题目描述: 某省调查乡村交通 ...
- 九度OJ 1024 畅通工程 -- 并查集、贪心算法(最小生成树)
题目地址:http://ac.jobdu.com/problem.php?pid=1024 题目描述: 省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但 ...
- 【九度OJ】题目1028:继续畅通工程 解题报告
[九度OJ]题目1028:继续畅通工程 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1028 题目描述: 省政府" ...
- 【九度OJ】题目1024:畅通工程 解题报告
[九度OJ]题目1024:畅通工程 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1024 题目描述: 省政府"畅 ...
- 【九度OJ】题目1012:畅通工程 解题报告
[九度OJ]题目1012:畅通工程 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1012 题目描述: 某省调查城镇交通状况 ...
- 九度oj 题目1087:约数的个数
题目链接:http://ac.jobdu.com/problem.php?pid=1087 题目描述: 输入n个整数,依次输出每个数的约数的个数 输入: 输入的第一行为N,即数组的个数(N<=1 ...
随机推荐
- js判断空值
{ "mDataProp": 'CreationTime', 'mRender': function (date) { if (!date && typeof (d ...
- VS2010 常见错误类型汇总
开发路漫漫,尤其对于刚从事开发不久的新手来说,常常遇到一些稀奇古怪的错误,很是头疼,鉴于自己在开发过程中常遇到的几个错误做个分享,希望对大家有所帮助: 错误1: 在创建完win32的DLL后,编译时出 ...
- ios-->制作ipa文件
用证书进行真机调试并生成二级制文件,通常位于:/Users/.../Library/Developer/Xcode/DerivedData/XXXXXDemo-gmtamkryoesxilartayu ...
- vue学习笔记(1)—— 组件化实现todoList
一.环境搭建 1.npm 大型应用时推荐用npm安装,npm能很好的和webpack等模块打包器配合使用.具体安装步骤请参考网上的诸多教程.完成后使用如下命令安装vue. $ npm install ...
- [学习笔记] 多项式与快速傅里叶变换(FFT)基础
引入 可能有不少OIer都知道FFT这个神奇的算法, 通过一系列玄学的变化就可以在 $O(nlog(n))$ 的总时间复杂度内计算出两个向量的卷积, 而代码量却非常小. 博主一年半前曾经因COGS的一 ...
- Treap详解
今天一天怼了平衡树.深深地被她的魅力折服了.我算是领略到了高级数据结构的美妙.oi太神奇了. 今天初识平衡树,选择了Treap. Treap又叫树堆,是一个二叉搜索树.我们知道,它的节点插入是随机的, ...
- VsCode 附加Chorme调试TS方法
命令行进入:[谷歌浏览器安装目录/]/chrome.exe --remote-debugging-port=9222 关闭所有窗口并结束Chorme进程(如果无法附加调试做此操作,可以正常调试请忽略. ...
- 强密码和弱密码并没有什么区别?NIST密码安全标准更新:不再建议密码要求混合大写字母、字符和数字
作为一名认真负责的小编,每次注册账号设置密码的时候都是最痛苦的,太简单的怕被破解,太难的又记不住. 等你好不容易记住密码,三个月后IT同学过来拍拍你的肩膀,"你的密码到期了,记得改啊--&q ...
- svn: E200007: CHECKOUT can only be performed on a version resource
这两天不知道怎么了svn一直出错:出错信息如下: svn: E200007: Commit failed (details follow): svn: E200007: Commit failed ( ...
- 谈一谈 Laravel 5.5 的 「自动发现」和此刻心情
看了Taylor Otwell发表的Package Auto-Discovery In Laravel 5.5第一反应是 为啥... 也怪我,在开发之前忘记看5.5的开发代码动态,之前的文章中也提到过 ...