原题链接

Prim(点归并)

//异或运算:相同为假,不同为真
#include<cstdio>
#include<algorithm>
#define maxn 105
using namespace std;
int n,m,sum,flag;
int fa[maxn];
struct Edge
{
int u,v,w;
bool operator<(const Edge &cmp)const{
return w<cmp.w;
}
}edge[maxn*maxn>>]; int Findset(int x)
{
if(fa[x]==x) return fa[x]=x;
else return fa[x]=Findset(fa[x]);
}
int main()
{
while(scanf("%d",&n),n){
m=(n-)*n/;
for(int i=;i<=n;i++)
fa[i]=i;
for(int i=;i<m;i++){
scanf("%d%d%d%d",&edge[i].u,&edge[i].v,&edge[i].w,&flag);
if(flag)
fa[edge[i].u]=edge[i].v;
}
sort(edge,edge+m);
sum=;
for(int i=;i<m;i++){
int x=Findset(edge[i].u);
int y=Findset(edge[i].v);
if(x!=y){
fa[x]=y;
sum+=edge[i].w;
}
}
printf("%d\n",sum);
}
}

参考链接

Kruscal(边归并)

#include<cstdio>
#include<cstring>
#define INF 0x3f3f3f3f
#define maxn 105
int i,j,k,n,m,min,sum;
int lowcost[maxn],visit[maxn];
int graph[maxn][maxn];
void Prim()
{
sum=;
memset(visit,,sizeof(visit));
visit[]=;
for(i=;i<=n;i++)
lowcost[i]=graph[][i];
for(i=;i<=n;i++){
min=INF;
for(j=;j<=n;j++){
if(!visit[j]&&min>lowcost[j]){
min=lowcost[j];
k=j;
}
}
sum+=lowcost[k];
visit[k]=;
for(j=;j<=n;j++){
if(!visit[j]&&lowcost[j]>graph[k][j])
lowcost[j]=graph[k][j];
}
}
} int main()
{
int a,b,c,d;
while(scanf("%d",&n),n){
m=(n-)*n/;
memset(graph,INF,sizeof(graph));
while(m--){
scanf("%d%d%d%d",&a,&b,&c,&d);
if(d) graph[a][b]=graph[b][a]=;
else graph[a][b]=graph[b][a]=c;
}
Prim();
printf("%d\n",sum);
}
return ;
}

最新文章

  1. java 文件压缩和解压(ZipInputStream, ZipOutputStream)
  2. iOS沙盒路径变化的说明详解
  3. jQuery延迟加载(懒加载)插件 – jquery.lazyload.js
  4. sql语句与数据库2
  5. JSBinding + SharpKit / JavaScript 加载流程
  6. 深入浅出 RPC - 浅出篇+深入篇
  7. Epic - Coin Change
  8. MVC 小常识
  9. 语音频谱语音信号处理之(四)梅尔频率倒谱系数(MFCC)
  10. leetcode-006 detect cycle
  11. CSS3学习笔记-1:CSS样式继承
  12. 【ASP.NET MVC 学习笔记】- 10 Controller和Action(1)
  13. 广义线性模型 R--glm函数
  14. JS一直是单线程,异步(定时器,ajax请求等)是由浏览器来实现的!(转)
  15. 弃 Java 而使用 Kotlin 的你后悔了吗?| kotlin将会是最好的开发语言
  16. ionic3搭建笔记及编译成apk
  17. springcloud config
  18. 1st,Python基础——01
  19. 【bzoj2876】 Noi2012—骑行川藏
  20. www.sojson.com网站高级JS加密破解

热门文章

  1. linux命令在文件中根据命令查找
  2. 如何利用h5将视频设置为背景
  3. combobox组合框
  4. 《C++ Primer Plus》第15章 友元、异常和其他 学习笔记
  5. 在SQL数据库中怎么去掉某一列的中的一写特殊字符
  6. poj_3258 二分法
  7. linux发布项目
  8. LeetCode——Ugly Number
  9. webpack之跨域
  10. hibernate实现有两种配置,xml配置与注释配置。&lt;转&gt;