[51nod1212]最小生成树模板
解题关键:注意下标
解法一:prim算法
#include<bits/stdc++.h>
#define maxv 1002
#define maxm 50002
#define INF 0x3f3f3f3f
using namespace std;
typedef long long ll;
int cost[maxv][maxv];
int mincost[maxv];
bool used[maxv];
int V; int prim(){
fill(mincost,mincost+V,INF);
mincost[]=;
int res=; while(true){
int v=-;
for(int u=;u<V;u++){
if(!used[u]&&(v==-||mincost[u]<mincost[v])) v=u;
}
if(v==-) break;
used[v]=true;
res+=mincost[v];
for(int u=;u<V;u++){
mincost[u]=min(mincost[u],cost[v][u]);
}
}
return res;
}
int main(){
for(int i=;i<maxv;i++){
for(int j=;j<maxv;j++){
cost[i][j]=INF;
}
}
int n,m,t1,t2,t3;
cin>>n>>m;
V=n;
for(int i=;i<m;i++){
cin>>t1>>t2>>t3;
cost[t1-][t2-]=cost[t2-][t1-]=t3;
}
int ans=prim();
cout<<ans<<endl;
}
[51nod1212]最小生成树模板的更多相关文章
- poj 1258 最小生成树 模板
POJ 最小生成树模板 Kruskal算法 #include<iostream> #include<algorithm> #include<stdio.h> #in ...
- POJ-图论-最小生成树模板
POJ-图论-最小生成树模板 Kruskal算法 1.初始时所有结点属于孤立的集合. 2.按照边权递增顺序遍历所有的边,若遍历到的边两个顶点仍分属不同的集合(该边即为连通这两个集合的边中权值最小的那条 ...
- POJ 2031 Building a Space Station 最小生成树模板
题目大意:在三维坐标中给出n个细胞的x,y,z坐标和半径r.如果两个点相交或相切则不用修路,否则修一条路连接两个细胞的表面,求最小生成树. 题目思路:最小生成树树模板过了,没啥说的 #include& ...
- 最小生成树模板【kruskal & prim】
CDOJ 1966 Kruskal 解法 时间复杂度O(mlogm) m为边数,这里主要是边排序占时间,后面并查集还好 #include <cstdio> #include <cst ...
- luogu p3366 最小生成树模板
倒腾了一个小时 自己也没去看网上的 总算自己能写出来模板了 kruskal //最小生成树 每次找最短的边 #include<bits/stdc++.h> using namespace ...
- 最小生成树模板题-----P3366 【模板】最小生成树
题目描述 如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出orz 输入格式 第一行包含两个整数N.M,表示该图共有N个结点和M条无向边.(N<=5000,M<=200000) ...
- Prime算法 与 Kruskal算法求最小生成树模板
算法原理参考链接 ==> UESTC算法讲堂——最小生成树 关于两种算法的复杂度分析 ==> http://blog.csdn.net/haskei/article/details/531 ...
- POJ 1789 Truck History (Kruskal最小生成树) 模板题
Description Advanced Cargo Movement, Ltd. uses trucks of different types. Some trucks are used for v ...
- POJ 1258:Agri-Net Prim最小生成树模板题
Agri-Net Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 45050 Accepted: 18479 Descri ...
随机推荐
- simple -- abstract
<?php abstract class Operation { protected $_NumberA = 0; protected $_NumberB = 0; protected $_Re ...
- LinkedBlockingQueue,ArrayListBlockingQueue,SynchronousQueue
LinkedBlockingQueue :1.读写锁分开,性能较 ArrayListBlockingQueue 只有一把锁控制读写要高一些.2.无界队列,不会触发Reject异常,ArrayListB ...
- 本地文件读取(csv,txt)时字符编码问题解决
今天进行csv文件读取时,老是入库为空,因为其中有中文字符,我要通过中文字符映射成相应的编号(上升:1011,下降:1012),于是怎么也取不到编号.刚开始以为程序映射出了问题,最后日志打出来后,发现 ...
- Linux- 运维
Linux运维遇到需要使用命令 查看Linux系统有多少用户 cat /etc/passwd | wc -l 查看用户占用的uid,默认情况下,ldap新增的用户和系统本地的用户uid是混在一起.在新 ...
- Web Worker浅学
Web Workers 是 HTML5 提供的一个javascript多线程解决方案,我们可以将一些大计算量的代码交由web Worker运行而不冻结用户界面.它独立于其他脚本,不会影响页面的性能.您 ...
- 纯css实现3D字体
下面分别是html,css和js代码: <div class="wrapper"> <h1 contenteditable data-heading=" ...
- Struts2与OGNL
Action会自动放入值栈,成员变量会自动放入root区 如果是方法中的对象 要放入值栈 push()或者getRoot().push(); 界面取值 直接用对象的属性名进行取值
- Python-获取前一条用例的执行结果
import unittest,HTMLTestRunner from nose_parameterized import parameterized def login(username,passw ...
- Python调试时__name__ =='__main__'的妙用
# python 文件自己运行,__name__的值就会等于__main__# 别的文件导入执行时,变成了导入文件的名字 例如: niuniu.py文件中,文件自己执行时,__name__的值就是__ ...
- leetcode 258. Add Digits(数论)
Given a non-negative integer num, repeatedly add all its digits until the result has only one digit. ...