HDU 1301 Jungle Roads (最小生成树,基础题,模版解释)——同 poj 1251 Jungle Roads
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<string.h>
#include <malloc.h>
#include<stdlib.h>
#include<algorithm>
#include<iostream>
using namespace std; #define inf 999999999
#define M 110
int mat[M][M]; int prim(int n,int sta)
{
int mark[M],dis[M];
int i,sum=,j;
for(i=;i<n;i++)
{
dis[i]=mat[sta][i];
mark[i]=;
}
mark[sta]=;
for(i=;i<n;i++)
{
int minn=inf,flag=-;;
for(j=;j<n;j++)
{
if(mark[j]==&&dis[j]<minn)
{
minn=dis[j];
flag=j;
}
}
if(flag!=-)
{
mark[flag]=;
sum=sum+dis[flag];
for(j=;j<n;j++)
{
if(dis[j]>mat[flag][j])
dis[j]=mat[flag][j];
}
}
}
return sum;
} int main()
{
int n,i,j,m,adj;
char s,e;
while(scanf("%d",&n),n)
{ for(i=;i<n;i++)
for(j=;j<n;j++)
mat[i][j]=inf;
n--;
for(i=;i<n;i++)
{
cin>>s>>m;
for(j=;j<m;j++)
{
cin>>e>>adj;
mat[s-'A'][e-'A']=mat[e-'A'][s-'A']=adj;//擦,原来这题的最小生成树也是双向边
}
}
n++;
printf("%d\n",prim(n,));
}
return ;
}
//关键代码参考自模版:
//prim算法(矩阵形式): #define inf 0x3f3f3f3f
int prim(int n,int sta)//n表示有n个顶点,sta表从sta这个顶点出发生成最小生成树
{
int mark[M],dis[M];
int i,sum = ; //sum是总的最小生成树边权值
for (i = ;i < n;i ++) //初始化dis[i] 表从顶点sta到点i的权值
{
dis[i] = mat[sta][i];
mark[i] = ;
}
mark[sta] = ; //sta 这个顶点加入最小生成树中
for (i = ;i < n;i ++) //循环n-1次,每次找出一条最小权值的边 n个点的图
{ //只有n-1条边
int min = inf; //inf 表无穷大
for (j = ;j < n;j ++)//找出当前未在最小生成树中边权最小的顶点
if (!mark[j] && dis[j] < min)
min = dis[j],flag = j;
mark[flag] = ; //把该顶点加入最小生成树中
sum += dis[flag]; //sum加上其边权值
for (j = ;j < n;j ++) //以falg为起点更新到各点是最小权值
if (dis[j] > mat[flag][j])
dis[j] = mat[flag][j];
}
return sum; //返回边权总和
}
prim 模版
HDU 1301 Jungle Roads (最小生成树,基础题,模版解释)——同 poj 1251 Jungle Roads的更多相关文章
- poj 1251 Jungle Roads (最小生成树)
poj 1251 Jungle Roads (最小生成树) Link: http://poj.org/problem?id=1251 Jungle Roads Time Limit: 1000 ...
- POJ 1251 Jungle Roads (最小生成树)
题目: Description The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign ...
- POJ 1251 Jungle Roads(最小生成树)
题意 有n个村子 输入n 然后n-1行先输入村子的序号和与该村子相连的村子数t 后面依次输入t组s和tt s为村子序号 tt为与当前村子的距离 求链接全部村子的最短路径 还是裸的最小生成树咯 ...
- Jam's balance HDU - 5616 (01背包基础题)
Jim has a balance and N weights. (1≤N≤20) The balance can only tell whether things on different side ...
- POJ 1251 Jungle Roads - C语言 - Kruskal算法
Description The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign aid ...
- POJ 1251 Jungle Roads (prim)
D - Jungle Roads Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u Su ...
- POJ 1251 Jungle Roads(Kruskal算法求解MST)
题目: The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign aid money w ...
- [ An Ac a Day ^_^ ] [kuangbin带你飞]专题六 最小生成树 POJ 1251 Jungle Roads
题意: 有n个点 每个点上有一些道路 求最小生成树 解释下输入格式 A n v1 w1 v2 w2 A点上有n条边 A到v1权值是w1 A到v2权值是w2 思路: 字符串处理之后跑kruskal求最小 ...
- hdu 1711 Number Sequence KMP 基础题
Number Sequence Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
随机推荐
- iOS Foundation框架 -2.常用集合类简单总结
Foundation框架中常用的类有:NSString.NSArray.NSSet.NSDictionary 以及它们对应的子类 NSMutableString.NSMutableArray.NSMu ...
- ROS
1 SSH 为什么我用 ssh 用户名 就不行,用 ssh xxx.xxx.xxx.xxx -l 用户名 就可以了呢 2 SCP 传送文件到另一个IP 用法: scp xxx root@xx.x ...
- DTCMS列表页自定义参数。
1.频道管理中,URL配置,增加一个参数person_id 2.在photo_list.html模板页中,添加以下代码 <!--C#代码--> <%csharp%> strin ...
- 省市区联动(MVC分布视图)
1.调用分布视图 //Html辅助方法 返回参数的值 存储在ProvinceId.CityId.DistrictId中 @{Html.RenderAction("GetProvince&qu ...
- TOMCAT内存大小调整
Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个java虚拟机.JAVA程序启动时JVM都会分配一个初始内存和最大内存给这个应用程序.这个初始内存和最大内存在一定程度都会 ...
- WPF 绑定二(绑定指定的字符串)
xaml: <Window x:Class="WpfApplication1.Window2" xmlns="http://schemas.microsoft.co ...
- 重拾C,一天一点点_3
按位运算 C语言提供了6个位操作运算符,只能作用于整型操作数,即只作用于带符号或无符号的char.short.int.long. & 按位与(AND) ! 按位或(OR) ^ ...
- Windows下关于Composer使用时出现的问题及解决办法
问题一: Fatal error: Call to undefined method Composer\Package\CompletePackage::getTrans portOptions() ...
- Jquery插件收集
移动端滚动条插件iScroll.js http://www.cnblogs.com/starof/p/5215845.html http://www.codeceo.com/article/35-jq ...
- Thinkphp常用的方法和技巧(转)
2012年09月26日 Thinkphp 里一些常用方法和技巧的整理,包括常用的快捷键以及在程序开发时用到的一些实用方法,关于快捷键用得不是很熟练,总之,掌握这些方法和技巧,对于我们开发 thinkp ...