Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

搞定了。1258 Accepted 268K 16MS

Posted by orangelegend at 2008-08-20 15:13:35 on Problem 1258
In Reply To:Re:求教高人 Posted by:orangelegend at 2008-08-20 14:53:35
#include <stdio.h>
#include <algorithm>
using namespace std;

struct line
{
	int s,e,len;
}l[20000];

int flag[128];

bool cmp(struct line &a,struct line &b)
{
	return a.len < b.len;
}

int main()
{
	int i,j,k,n,len,count;
	int totallen;
	while (scanf("%d",&n) != EOF)
	{
		k = 0;
		for (i = 1; i <= n; i++)
		{
			for (j = 1; j <= n; j++)
			{
				scanf("%d",&len);
				if (i < j)
				{
					l[k].s = i;
					l[k].e = j;
					l[k].len = len;
					k++;
				}
			}
		}
		sort(&l[0],&l[k],cmp);
		memset(flag,0,sizeof(flag));
		flag[l[0].s] = 1;
		totallen = 0;
		count = 0;
		for (i = 0; i < k; i++)
		{
			if (flag[l[i].s] == 1 && flag[l[i].e] == 0)
			{
				totallen += l[i].len;
				flag[l[i].e] = 1;
				count++;
		改了这里		i = 0;
			}
			else if (flag[l[i].s] == 0 && flag[l[i].e] == 1)
			{
				totallen += l[i].len;
				flag[l[i].s] = 1;
				count++;
		改了这里		i = 0;
			}
			if (count == n - 1)
				break;
		}
		printf("%d\n",totallen);
	}
	return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator