| ||||||||||
| 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 | |||||||||
不是贪心就过了,有么问题?总是wa#define debug 0
#define NMAX 1004
#define INF 10000000
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
int a[NMAX][NMAX]={0};
int d[NMAX]={0};
int flag[NMAX]={0};
int N,M;
void solve()
{
int i,j;
int tmax=0;
for(i=1;i<=N;i++)
{
d[i]=a[1][i];
}
flag[1]=1;
int dmax;
for(i=2;i<=N;i++)
{
dmax=0;
int index=-1;
for(j=2;j<=N;j++)
{
if(flag[j])
continue;
if(dmax<d[j])
{
dmax=d[j];
index=j;
}
}
if(dmax==0)
for(int k=0;k<=100000000;k++);
tmax+=dmax;
flag[index]=1;
for(j=1;j<=N;j++)
{
if(flag[j])
continue;
if(d[j]<a[index][j])
d[j]=a[index][j];
}
}
printf("%d",tmax);
}
main()
{
#if debug
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
#endif
scanf("%d%d",&N,&M);
int i,j;
for(i=1;i<=N;i++)
for(j=1;j<=N;j++)
a[i][j]=0;
int A,B,C;
for(i=1;i<=M;i++)
{
scanf("%d%d%d",&A,&B,&C);
if(a[A][B]<C)
a[A][B]=C;
a[B][A]=C;
}
int flag=0;
for(i=1;i<=N;i++)
{
flag=0;
for(j=1;j<=N;j++)
{
if(a[i][j])
flag=1;
}
if(flag==0)
{
printf("-1\n");
return 1;
}
}
solve();
#if debug
fclose(stdin);
fclose(stdout);
#endif;
return 1;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator