数据结构实验之图论六:村村通公路
来源:互联网 发布:fastdfs nginx 缩略图 编辑:程序博客网 时间:2024/05/16 15:48
Problem Description
Input
Output
Example Input
5 81 2 121 3 91 4 111 5 32 3 62 4 93 4 44 5 6
Example Output
19
代码:
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define INF 0x3f3f3f3f
using namespace std;
int map[1001][1001], v[1001];
int flag;
struct node
{
int data, step;
};
struct node p[1001];
void bfs(int n)
{
int i, sum=0;
int d[1001];
v[1]=1;
for(i=1; i<=n; i++)
{
d[i]=map[1][i];
}
int pos, k=1;
for(int j=1; j<n; j++)
{
int mm=INF;
for(i=1; i<=n; i++)
{
if(v[i]!=1&&d[i]<mm)
{
mm=d[i];
pos=i;
}
}
if(mm==INF)
{
k=0;
break;
}
sum=sum+mm;
v[pos]=1;
for(i=1; i<=n; i++)
{
if(v[i]!=1&&d[i]>map[pos][i])
{
d[i]=map[pos][i];
}
}
}
if(k)
printf("%d\n", sum);
else
printf("-1\n");
}
int main()
{
int m, a, b, n, i, j, c;
while(~scanf("%d", &n))
{
scanf("%d", &m);
memset(map, INF, sizeof(map));
memset(v, 0, sizeof(v));
for(i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
{
if(i==j)
map[i][j]=0;
}
}
while(m--)
{
scanf("%d %d %d", &a, &b, &c);
if(map[a][b]>c)
map[a][b]=map[b][a]=c;
}
bfs(n);
}
return 0;
}
- 数据结构实验之图论六:村村通公路
- 数据结构实验之图论六:村村通公路
- 数据结构实验之图论六:村村通公路
- 数据结构实验之图论六:村村通公路
- 数据结构实验之图论六:村村通公路
- 数据结构实验之图论六:村村通公路
- 数据结构实验之图论六:村村通公路
- 数据结构实验之图论六:村村通公路
- 数据结构实验之图论六:村村通公路
- 数据结构实验之图论六:村村通公路
- 数据结构实验之图论六:村村通公路
- 数据结构实验之图论六:村村通公路
- 数据结构实验之图论六:村村通公路
- 数据结构实验之图论六:村村通公路
- 数据结构实验之图论六:村村通公路
- 数据结构实验之图论六:村村通公路
- 数据结构实验之图论六:村村通公路
- 数据结构实验之图论六:村村通公路
- VMware Tools安装教程
- VS2013常用快捷键
- HDOJ1335 Basically Speaking(进制转换)
- 【学习路线图】涵盖主要算法
- Oracle数据库优化(重点)
- 数据结构实验之图论六:村村通公路
- android百度地图开发V4.5最新版(3)---计算地图上俩点之间的距离
- 服务器性能监控软件的选择
- Leetcode 416 Partition Equal Subset Sum (算法分析week14)
- 上层APP调用底层硬件驱动过程解析
- 布局问题
- iOS真机调试出现:A valid provisioning profile for this executable was not found.
- 新手教程,从0搭建ShadowsocksR与BBR加速,
- 卡特兰数