SDUT图结构练习——最小生成树
http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2144&cid=1186
这道题一开始是用prim算法做的,一直错一直错,后来问了帅郭改用Kruskal做才对,再后来问了THH和二货才改对的prim算法,是因为重边我没处理啊,上火
#include <cstdio>
#include <cstring>
#include<cstdlib>
#include<iostream>
using namespace std ;
#define oo (1<<28)
const int N = ;
int map[N][N],low[N],flag[N];//low数组是用来保留最小代价的;
//flag数组是用来标记的,找过得点就不再去找
int m,n;
int u,v,w ;
int prim()
{
int i,j,pos,min,ans=;
memset(flag,,sizeof(flag));
flag[]=;
pos=;
for(i = ; i <= n ; i++)
if(i != pos)
low[i] = map[pos][i];
for(i = ; i < n ; i++)
{
min=oo;
for(j = ; j <= n ; j++)
if(flag[j] == &&min>=low[j])
{
min = low[j];
pos = j ;
}
ans += min ;
flag[pos] = ;
for(j = ; j <= n ; j++)
if(flag[j] == &&low[j]>map[pos][j])
low[j]=map[pos][j];
}
return ans;
}
int main()
{
int ans;
while(scanf("%d %d",&n,&m)!=EOF)
{
for(int i = ; i < N ; i++)
{
for(int j = ; j < N ; j++)
{
map[i][j] = oo ;
}
}
for(int i = ; i <= m ; i++)
{
scanf("%d %d %d",&u,&v,&w);
if(map[u][v] >w)//防止重边出现保留小的重边
map[u][v] = map[v][u] = w ;
}
ans = prim();
printf("%d\n",ans);
}
return ;
}
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
using namespace std ;
const int MAXN = ;
const int MAX = ;
int EDG[MAX];
int sum;
struct node
{
int u ;
int v ;
int w ;
} map[MAXN],t;
int find(int x)
{
while(x!=EDG[x]){
x=EDG[x];
}
return x;
}
void Kruskal(int x,int y,int z)
{
x = find(x) ;
y = find(y) ;
if(x != y)
{
EDG[x] = y ;
sum += z;
}
}
int main()
{
int n,m,i,j;
while(~scanf("%d %d",&n,&m))
{
sum = ;
int k = ;
for(int i = ; i <= n ; i++)
EDG[i] = i ;
for(int i = ; i <= m ; i++)
scanf("%d %d %d",&map[i].u,&map[i].v,&map[i].w);
for(int i = ; i <= m- ; i++){
for(j = i+ ; j <= m ; j++){
if(map[i].w > map[j].w)
{
t = map[i] ;
map[i] = map[j];
map[j] = t ;
}
}
}
for(int i = ; i <= m ; i++)
Kruskal(map[i].u,map[i].v,map[i].w);
printf("%d\n",sum);
}
return ;
}
SDUT图结构练习——最小生成树的更多相关文章
- 图结构练习——最小生成树(kruskal算法(克鲁斯卡尔))
图结构练习——最小生成树 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 有n个城市,其中有些城市之间可以修建公路,修建不同的公 ...
- 图结构练习——最小生成树(prim算法(普里姆))
图结构练习——最小生成树 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 有n个城市,其中有些城市之间可以修建公路,修建不同 ...
- SDUT OJ 图结构练习——最短路径 ( Floyed 算法 AND Dijkstra算法)
图结构练习——最短路径 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem ...
- 图结构练习——最短路径(dijkstra算法(迪杰斯拉特))
图结构练习——最短路径 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 给定一个带权无向图,求节点1到节点n的最短路径. ...
- 图结构练习——判断给定图是否存在合法拓扑序列(dfs算法(第一个代码),邻接矩阵(前两个代码),邻接表(第三个代码))
sdut 2140 图结构练习——判断给定图是否存在合法拓扑序列 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 给定一个有向图 ...
- 图结构练习——最短路径(floyd算法(弗洛伊德))
图结构练习——最短路径 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 给定一个带权无向图,求节点1到节点n的最短路径. 输 ...
- C++图结构的图结构操作示例
示例代码: /* By qianshou 2013/10/5明天就要开学了~哎~ */ #include<iostream> using namespace std; /********* ...
- C# 图结构操作
仿造<<Java常用算法手册>>里面对的算法,使用C#实现了一遍. 理论知识我就不讲解了,在这本书里面已经写的非常完美! 代码如何下: using System; using ...
- Theano学习笔记(三)——图结构
图结构(Graph Structures)这是理解Theano该基金会的内部运作. Theano编程的核心是用符号占位符把数学关系表示出来. 图结构的组成部分 如图实现了这段代码: importthe ...
随机推荐
- CSS3属性box-shadow使用教程
CSS3的box-shadow属性可以让我们轻松实现图层阴影效果.我们来实战详解一下这个属性. 1. box-shadow属性的浏览器兼容性先来看一个这个属性的浏览器兼容性: Opera: 不知道是从 ...
- jquery.tmpl.min.js--前端实现模版--数据绑定--详解
动态请求数据来更新页面是现在非常常用的方法,比如博客评论的分页动态加载,微博的滚动加载和定时请求加载等. 这些情况下,动态请求返回的数据一般不是已拼好的 HTML 就是 JSON 或 XML,总之不在 ...
- jquery hover事件冒泡解决方法
$(this).hover(function(event){ $(this).addClass("cur"); event.stopPropagation(); ...
- HTML表单样式
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...
- Summary of Amazon Marketplace Web Service
Overview Here I want to summarize Amazon marketplace web service (MWS or AMWS) that can be used for ...
- node.js和socket.io纯js实现的即时通讯实例分享
在这个例子中,其实node.js并没有真正起到服务器的作用,因为我们这里可以直接运行client.html文件,而不用输入url请求,当 然,要想输入url请求页面内容还需要加入请求静态文件的代码.这 ...
- composer安装yii2或者laravel报错
大概的信息就是提示让登陆github,然后就报错了 Could not fetch https://api.github.com/authorizations, enter your GitHub c ...
- Firebird数据库相关备忘录
Firebird数据库中有一些很特别的东西,很好用,但由于平时用的不多,记在这里,以备以后用到时查询. 1.以ADO 的OLE ODBC驱动方式访问 Firebird,可以使用如下连接串: FBCon ...
- js实现复制到剪切板
// <![CDATA[ function copy_clip(copy) { if (window.clipboardData) { window.clipboardData.setData( ...
- 1017. Queueing at Bank (25)
Suppose a bank has K windows open for service. There is a yellow line in front of the windows which ...