| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:坑爹,需要考虑重边!!!In Reply To:坑爹,需要考虑重边!!! Posted by:1871168524 at 2014-11-13 23:24:39 > 坑爹,需要考虑重边!!!
代码如下:
#include<stdio.h>
#include<string.h>
#define INF 0x3f3f3f3f
int map[1005][1005],visit[1005],dis[1005],n;
void prim()
{
int length=0,point=1,max,i,j;
for(i=1;i<=n;i++)
dis[i]=map[point][i];
memset(visit,0,sizeof(visit));
visit[point]=1;
for(i=1;i<n;i++)
{
max=-INF;
for(j=1;j<=n;j++)
if(!visit[j]&&dis[j]>max)
{
max=dis[j];
point=j;
}
if(max==-INF)
{
printf("-1\n");
return ;
}
length+=max;
visit[point]=1;
for(j=1;j<=n;j++)
if(!visit[j]&&dis[j]<map[point][j])
dis[j]=map[point][j];
}
printf("%d\n",length);
}
int main()
{
int m,i,j,p,q,c;
while(~scanf("%d%d",&n,&m))
{
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
map[i][j]=-INF;
while(m--)
{
scanf("%d%d%d",&p,&q,&c);
if(map[p][q]==-INF) map[p][q]=map[q][p]=c;
else if(map[p][q]<c) map[p][q]=map[q][p]=c;
}
prim();
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator