hihocoder 1109 : 最小生成树三·堆优化的Prim算法
来源:互联网 发布:api原油库存数据预测 编辑:程序博客网 时间:2024/06/08 07:02
时间限制:10000ms
单点时限:1000ms
内存限制:256MB
- 样例输入
5 291 2 6742 3 2493 4 6724 5 9331 2 7883 4 1472 4 5043 4 381 3 653 5 61 5 8651 3 5901 4 6822 4 2272 4 6361 4 3121 3 1432 5 1582 3 5163 5 1021 5 6051 4 994 5 2242 4 1983 5 8941 5 8453 4 72 4 141 4 185
- 样例输出
92
import java.util.ArrayList;import java.util.List;import java.util.PriorityQueue;import java.util.Scanner;public class Main {static class Edge implements Comparable<Edge>{int from,to;int dis;public Edge(int from, int to, int dis) {this.from = from;this.to = to;this.dis = dis;}@Overridepublic int compareTo(Edge o) {return this.dis-o.dis;}}public int prim(List<Edge>[] graph,int start){boolean[] visited=new boolean[graph.length];PriorityQueue<Edge> queue=new PriorityQueue<Edge>();for(int i=0;i<graph[start].size();i++){queue.add(graph[start].get(i));}visited[start]=true;int re=0;while(!queue.isEmpty()){Edge edge=queue.poll();if(visited[edge.to]) continue;visited[edge.to]=true;re+=edge.dis;for(int i=0;i<graph[edge.to].size();i++){int x=graph[edge.to].get(i).to;if(!visited[x]) queue.add(graph[edge.to].get(i));}}return re;}public static void main(String[] args) {Main main=new Main();Scanner scan=new Scanner(System.in);int num=scan.nextInt();List<Edge>[] graph=new ArrayList[num];for(int i=0;i<graph.length;i++) graph[i]=new ArrayList<Edge>();int count=scan.nextInt();for(int i=0;i<count;i++){int x=scan.nextInt();int y=scan.nextInt();int dis=scan.nextInt();graph[x-1].add(new Edge(x-1,y-1,dis));graph[y-1].add(new Edge(y-1,x-1,dis));}System.out.println(main.prim(graph,0));}}
描述
回到两个星期之前,在成功的使用Kruscal算法解决了问题之后,小Ho产生了一个疑问,究竟这样的算法在稀疏图上比Prim优化之处在哪里呢?
提示:没有无缘无故的优化!输入
每个测试点(输入文件)有且仅有一组测试数据。
在一组测试数据中:
第1行为2个整数N、M,表示小Hi拥有的城市数量和小Hi筛选出路线的条数。
接下来的M行,每行描述一条路线,其中第i行为3个整数N1_i, N2_i, V_i,分别表示这条路线的两个端点和在这条路线上建造道路的费用。
对于100%的数据,满足N<=10^5, M<=10^6,于任意i满足1<=N1_i, N2_i<=N, N1_i≠N2_i, 1<=V_i<=10^3.
对于100%的数据,满足一定存在一种方案,使得任意两座城市都可以互相到达。
输出
对于每组测试数据,输出1个整数Ans,表示为了使任意两座城市都可以通过所建造的道路互相到达至少需要的建造费用。
阅读全文
0 0
- hihoCoder 1109 最小生成树三·堆优化的Prim算法
- hihocoder #1109最小生成树三·堆优化的Prim算法
- hihocoder 1109 : 最小生成树三·堆优化的Prim算法
- #1109 : 最小生成树三·堆优化的Prim算法
- HIHO #1109 : 最小生成树三·堆优化的Prim算法
- hiho一下 第二十八周 最小生成树三·堆优化的Prim算法
- hiho 29 最小生成树三·堆优化的Prim算法
- 最小生成树Prim算法 堆优化
- 最小生成树 堆优化的Prim算法
- hiho刷题日记——第二十九天最小生成树三·堆优化的Prim算法
- hihoCoder 1097 : 最小生成树一·Prim算法
- hihoCoder#1097 : 最小生成树一·Prim算法
- hihocoder 1097 : 最小生成树一·Prim算法
- [HihoCoder]#1097 : 最小生成树一·Prim算法
- hihoCoder 1097 : 最小生成树一·Prim算法
- hihocoder 最小生成树一·Prim算法
- hihocoder-1109-堆优化的prim
- 【模板】Prim+堆优化 最小生成树
- 关于Cookie的An invalid character [32] was present in the Cookie value异常
- 2017ACM福建省赛FZU2283 Tic-Tac-Toe
- 程序设计与算法(一)第一周测验(2017夏季) 解题报告
- 常见数字IC设计,FPGA工程师面试考题
- STM32F103mini教程学习总结与心得(一)
- hihocoder 1109 : 最小生成树三·堆优化的Prim算法
- Python 介绍及基本语法
- 关于梯度下降优化算法momentum的一些疑
- 线段树基本入门知识
- java的两种动态代理
- leetcode 链表所有题目
- 《机器学习实战》学习笔记-[6]-支持向量机SMO
- JAVA——JVM
- udev