最小生成树(vector)用法
来源:互联网 发布:c语言区间内素数 编辑:程序博客网 时间:2024/05/02 03:10
图结构练习——最小生成树
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
有n个城市,其中有些城市之间可以修建公路,修建不同的公路费用是不同的。现在我们想知道,最少花多少钱修公路可以将所有的城市连在一起,使在任意一城市出发,可以到达其他任意的城市。
输入
输入包含多组数据,格式如下。
第一行包括两个整数n m,代表城市个数和可以修建的公路个数。(n <= 100, m <=10000)
剩下m行每行3个正整数a b c,代表城市a 和城市b之间可以修建一条公路,代价为c。
输出
每组输出占一行,仅输出最小花费。
示例输入
3 21 2 11 3 11 0
示例输出
20
之前一直有错误过不了(结果是因为多组QAQ每次都应该初始化)
可以省去手敲链表的时间呐
#include <iostream> #include <bits/stdc++.h> using namespace std; const int MAXN=50005;int n,m; const int inf=0x3f3f3f; int dis[MAXN],vis[MAXN]; struct node { int v,w; }; vector<struct node>head[MAXN]; int prim() { int i,j; int pos,mm; int v,w; for(i=1;i<=n;++i) { dis[i]=inf; vis[i]=0; } int l=head[1].size(); for(i=0;i<l;++i) { v=head[1][i].v; w=head[1][i].w; if(dis[v]>w) dis[v]=w; } vis[1]=1; int ans=0; for(i=0;i<n-1;++i) { mm=inf;pos=0; for(j=1;j<=n;++j) { if(!vis[j]&&dis[j]<mm) { mm=dis[j]; pos=j; } } ans+=mm; vis[pos]=1; l=head[pos].size(); for(j=0;j<l;++j) { v=head[pos][j].v; w=head[pos][j].w; if(!vis[v]&&dis[v]>w) { dis[v]=w; } } } return ans; } int main() { int i; while(~scanf("%d%d",&n,&m)) { int u,v,w; struct node p; for(i=1;i<=n;++i)head[i].clear(); for(i=0;i<m;++i) { scanf("%d%d%d",&u,&v,&w); p.w=w; p.v=v; head[u].push_back(p); p.v=u; head[v].push_back(p); } int ans=prim(); if(ans>=inf)printf("-1\n"); else printf("%d\n",ans); } return 0; }
邻接表当然要比邻接矩阵快呐o(>﹏<)o
0 0
- 最小生成树(vector)用法
- 算法导论-第23章-最小生成树:Prime算法(基于vector)的C++实现
- 最小生成树(Prim)(普利姆最小生成树)
- 最小方差生成树(最小生成树)
- 最小生成树(prim)
- 最小生成树(Kruskal)
- HDU1863(最小生成树)
- 最小生成树(转)
- poj3925(最小生成树)
- 最小生成树(模板)
- 最小生成树(Kruskal)
- 最小生成树(Prim)
- Outlets(最小生成树)
- prim(最小生成树)
- poj2031(最小生成树)
- 最小生成树(MST)
- poj_2485_Highways(最小生成树)
- nyoj38(最小生成树)
- 《编程之法》2.2寻找和为定值的两个数
- Replace RedHat 6.6`s yum with CentOS`s yum
- 两个脚本的相互加载
- 游戏界面的跳转
- 用draw9patch.bat绘制的气泡图片用在Android程序中有黑线,怎么解决?
- 最小生成树(vector)用法
- Service的使用(一)
- 服务器端用Servlet响应客户端请求,Gson请求。可以返回多个数据库中的信息
- MSP430 定时器输出PWM波形
- C++语言中位运算符在计算中的实际运用
- 2016 Multi-University Training Contest 1 1006 PowMod
- 安卓端的简单计算器
- 7.24——8.23暑期计划
- 【Poj】-1363-Rails(栈)