prim 模板
- #include<cstdio>
- #include<vector>
- #include<cstring>
- #include<set>
- #define maxn 5050
- #define fi first
- #define se second
- using namespace std;
- typedef pair<int,int> PII;
- vector <PII> s[maxn];
- int map[][];
- int low_cost[maxn],zou[maxn],n,m,x,y,val,zhong,mi,ans;
- int up(int x,int y,int val)
- {
- for(int i=;i<s[x].size();i++)
- {
- if(s[x][i].fi==y )
- {
- if( s[x][i].se>val)
- {
- s[x][i].se=val;
- }
- return ;
- }
- }
- return ;
- }
- main(){
- // freopen("data.in","r",stdin);
- scanf("%d%d",&n,&m);
- memset(low_cost,/,sizeof(low_cost));
- // memset(map,127/3,sizeof(map));
- for(int i=;i<=m;i++)
- {
- scanf("%d%d%d",&x,&y,&val);
- if(x==y) continue;
- // map[x][y]=min(map[x][y],val);
- // map[y][x]=min(map[y][x],val);
- if(up(x,y,val))
- up(y,x,val);
- else
- {
- s[x].push_back(PII(y,val));
- s[y].push_back(PII(x,val));
- }
- }
- for(int i=;i<s[].size();i++)
- {
- low_cost[s[][i].fi]=s[][i].se;
- }
- /* for(int i=2;i<=n;i++)
- {
- low_cost[i]=min(low_cost[i],map[1][i]);
- }*/
- zou[]=;
- zhong=;
- for(int qwer=;qwer<n;qwer++)
- {
- int f=;
- mi=;
- for(int i=;i<=n;i++)
- {
- if(low_cost[i]<mi && zou[i]==)
- {
- mi=low_cost[i];
- zhong=i;
- f=;
- }
- }
- if(f==)
- {
- printf("orz");
- return ;
- }
- ans+=mi;
- zou[zhong]=;
- for(int i=;i<s[zhong].size();i++)
- {
- if(zou[s[zhong][i].fi]==) continue;
- low_cost[s[zhong][i].fi]=min(low_cost[s[zhong][i].fi],s[zhong][i].se);
- }
- /* for(int i=1;i<=n;i++)
- {
- if(map[zhong][i]<low_cost[i])
- low_cost[i]=map[zhong][i];
- }*/
- }
- printf("%d",ans);
- }
prim 模板的更多相关文章
- HDU1875+Prim模板
https://cn.vjudge.net/problem/HDU-1875 相信大家都听说一个“百岛湖”的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现.现在政府 ...
- HDU 1223 还是畅通工程(最小生成树prim模板)
一个很简单的prim模板,但虽然是模板,但也是最基础的,也要脱离模板熟练打出来 后期会更新kruskal写法 #include<iostream> #include<cstdio&g ...
- Kruskal && Prim模板
1. Kruskal(并查集模板): /* Kruskal:并查集实现,记录两点和距离,按距离升序排序,O (ElogE) */ struct Edge { int u, v, w; bool ope ...
- prim模板题
题目链接:http://acm.hrbeu.edu.cn/index.php?act=problem&id=1223 #include <cstdio> #include < ...
- prim模板
]; int n; ][]; ]; int prim(){ int i,j,mi,v; ;i<n;i++){ d[i]=map[][i]; vis[i]=; } ;i<=n;i++){ m ...
- 最小生成树(kruskal模版 Prim模板)
http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2144&cid=1186 最小生成树,最重要的是了解思想 稠密图用Prim,稀疏图用Kru ...
- poj 1258 Agri-Net prim模板 prim与dijkstra的区别
很裸地求最小生成树的题目.题意就不多说了,最重要的就是记录一下学会了prim算法. 初学prim,给我的第一感觉就是和dijkstra好像啊,感觉两者的区别还是有的: 1:prim是求最小生成树的算法 ...
- 最小生成树模板【kruskal & prim】
CDOJ 1966 Kruskal 解法 时间复杂度O(mlogm) m为边数,这里主要是边排序占时间,后面并查集还好 #include <cstdio> #include <cst ...
- 最小生成树(次小生成树)(最小生成树不唯一) 模板:Kruskal算法和 Prim算法
Kruskal模板:按照边权排序,开始从最小边生成树 #include<algorithm> #include<stdio.h> #include<string.h> ...
随机推荐
- VMware 虚拟化编程(6) — VixDiskLib 虚拟磁盘库详解之二
目录 目录 前文列表 VixDiskLib 虚拟磁盘库 VixDiskLib_Open 打开 VMDK File VixDiskLib_Read 读取 VMDK File 数据 VixDiskLib_ ...
- deepin 安装tar.gz
由于网上推荐的比较多的安装方式是:sudo apt-get install mysql-server mysql-client,这个安装的是mysql5.7,既然都安装了就要安装最新的,所以从官网下载 ...
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_02 递归_3_练习_使用递归计算阶乘
结束条件是乘到 当前数字等于1
- QTP 11 补丁大全
原文: http://relevantcodes.com/qtp-11-0-patches/ Patch Link Details Support for Chrome 19 QTPWEB_00102 ...
- JS-在本页面禁止页面返回
这个问题是最近遇到的 解决方案我百度的并测试有效 // 如果你希望用户不用有返回功能 可缩写如下 或使用location.replace('url')跳转链接 history.pushState(nu ...
- vue组件生命周期
分为4个阶段:create/mount/update/destroy 每一个阶段都对应着有自己的处理函数 create: beforeCreate created 初始化 mount: beforeM ...
- SpringBoot(一) -- SpringBoot入门
一.简介 Spring Boot来简化Spring应用开发,约定大于配置,去繁从简,just run就能创建一个独立的,产品级别的应用. 1.快速创建独立运行的Spring项目以及与主流框架集成; 2 ...
- ajax 的post方法 的content-type设置和express里应用body-parser
ajax的post方法相比get方法,在传参形式上很不一样, get把参数用'?'拼接在端口后,并且用'&'连接;而post则是需要在send参数里设置. 根据ajax实例xhr.setReq ...
- HDU 6070题解(二分+线段树)
题面 传送门 此题的题意不是很清晰,要注意的一点是在区间[L,R]中,默认题目编号最后一次出现的时候是AC的 比如1 2 1 2 3 ,在区间[1,4]中,第3次提交时AC第1题,第4次提交时AC第2 ...
- 初学css display
display:网上查到的资料说是:属性规定元素应该生成的框的类型.例如:网页上的导航栏,使用ul->li那么需要让其排列在一行上可以使用设置li:{float:left:},也可以使用disp ...