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

poj真是奇怪,一道题,交两次,一次TLE,一次16ms

Posted by stupidjohn at 2010-07-01 17:47:29 on Problem 3259
#include<iostream>
using namespace std;
int map[6000];
struct node
{
	int from,to,cost;
}path[6000];
int n,m,w;
/*void show(int i)
{
	printf("depot: %d dis: %d\n",path[i].to,map[path[i].to]);
}*/
int main()
{
	int flag,i,j,cnt,mincow;
	scanf("%d",&cnt);
	while(cnt-->0)
	{
		scanf("%d%d%d",&n,&m,&w);
		memset(map,999999,(n+1)*sizeof(int));
		map[1]=0;
		for(i=0;i<2*m;i+=2) 
		{
			scanf("%d%d%d",&path[i].from,&path[i].to,&path[i].cost);
			path[i+1].to=path[i].from;
			path[i+1].from=path[i].to;
			path[i+1].cost=path[i].cost;
		}
		for(i=2*m;i<2*m+w;i++) 
		{
			scanf("%d%d%d",&path[i].from,&path[i].to,&path[i].cost);
			path[i].cost=-path[i].cost;
		}
		flag=1;
		while(flag&&map[1]==0)
		{
			flag=0;
			for(i=0;i<2*m+w;i++)
			{
				if(map[path[i].from]+path[i].cost<map[path[i].to])
				{map[path[i].to]=map[path[i].from]+path[i].cost;flag=1;/*show(i);*/}
			}
		}
		if(map[1]==0) cout<<"NO"<<endl;
		else cout<<"YES"<<endl;
	}
	return 1;
}


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