poj 2075 Tangled in Cables
来源:互联网 发布:js实现饼图 编辑:程序博客网 时间:2024/05/17 21:15
简单的prim,一次就AC了,高兴。
Memory: 648KTime: 0MSLanguage: CResult: Accepted
#include<stdio.h>
#include<string.h>
#define INF 1<<30
#define MAXN 251
double arr[MAXN][MAXN],total;
int used[MAXN];
double dis[MAXN];
struct node
{
char name[27];
int num;
}f[MAXN];
int n,m;
//prime:每次都从剩下的边中选出最短的一条,标记相关的顶点,并且修改相关边的值
void prim(int n)
{
int v;
double min;
int i,j;
for(i=1;i<=n;i++) //先默认第一个为待选节点
{
used[i]=0;
dis[i]=arr[1][i];
}
used[1]=1;
while(1)
{
min=INF;
v=0;
for(i=1;i<=n;i++)
if(!used[i] && dis[i]<min) //在待选节点中选出最小
{
min=dis[i];
v=i;
}
if(v==0)
break;
total=total+min;
used[v]=1;
for(j =1;j<=n;j++)
if(!used[j] && dis[j]>arr[v][j])//新引入的顶点到其他顶点的边值是否小于原来的边值
dis[j]=arr[v][j];
}
}
int main()
{
double sum,s;
int i,x,y,j;
char a[27],b[27];
scanf("%lf",&sum);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%s",f[i].name);
f[i].num=i;
}
scanf("%d",&m);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
arr[i][j]=INF;
for(i=1;i<=m;i++)
{
scanf("%s%s%lf",a,b,&s);
for(j=1;j<=n;j++)
if(strcmp(a,f[j].name)==0)
{
x=f[j].num;
break;
}
for(j=1;j<=n;j++)
if(strcmp(b,f[j].name)==0)
{
y=f[j].num;
break;
}
if(s<arr[x][y])
arr[x][y]=arr[y][x]=s;
}
total=0;
prim(n);
if(total>sum)
printf("Not enough cable \n");
else
printf("Need %.1f miles of cable\n",total);
return 0;
}
- POJ 2075 Tangled in Cables
- poj 2075 Tangled in Cables
- POJ 2075 Tangled in Cables
- poj 2075 Tangled in Cables
- poj 2075 Tangled in Cables
- POJ 2075 Tangled in Cables
- poj 2075 Tangled in Cables
- POJ 2075 Tangled in Cables
- POJ 2075 Tangled in Cables
- POJ 2075 Tangled in Cables(Kruskal算法)
- POJ 2075 Tangled in Cables (c++/java)
- poj -- 2075 Tangled in Cables (mst)
- POJ 2075:Tangled in Cables 【Prim】
- 2075:Tangled in Cables
- POJ 2075 Tangled in Cables(最小生成树)
- zoj 2326 || poj 2075 Tangled in Cables(MST)
- poj 2075 -- Tangled in Cables(最小生成树)
- POJ 2075 Tangled in Cables(最小生成树)
- Android音频流程三(各种类及主要方法)
- java同步
- SQL---DML---DELETE---DELETE语句总结(包含TRUNCATE)
- JavaWeb-ADV Chapter 1 the XML
- 线程状态的转换、同步与解锁
- poj 2075 Tangled in Cables
- poj 1279 Art Gallery
- Java开发小技巧
- 关于多线程的周期与同步
- Java类集 _Map接口
- tar -xzvf 的意义
- MFC类继承层次图
- C#中利用正则表达式实现字符串搜索
- .Net:MDI窗体菜单