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

不知道wa的原因

Posted by sunjie7 at 2011-08-01 04:32:33 on Problem 2394
#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
int map[505][505];
int n,m,d[505],q[50000005],inq[505],path[505];
void spfa()
{
	int i;
	for(i=1;i<=n;i++)
		d[i]=1000000000;
	int rear=0,front=0;
	q[0]=1;
	d[1]=0;
	while(rear>=front)
	{
		int u=q[front];
		inq[u]=0;
		for(i=1;i<=n;i++)
			if(map[u][i]!=0&&d[i]>d[u]+map[u][i])
			{
				d[i]=d[u]+map[u][i];
				path[i]=u;
				if(!inq[i])
				{
					inq[i]=1;
					q[++rear]=i;
				}
			}
		++front;
	}
}

int main()
{
	int f,p;
	while(scanf("%d%d%d%d",&n,&m,&f,&p)!=EOF)
	{
		int i,a,b,c;
		memset(map,0,sizeof(map));
		memset(inq,0,sizeof(inq));
		for(i=0;i<m;i++)
		{
			scanf("%d%d%d",&a,&b,&c);
			map[a][b]=c;
			map[b][a]=c;
		}
		spfa();
		int x,h[105],j=0;
		for(i=1;i<=f;i++)
		{
			scanf("%d",&x);
			if(d[x]<=p)
				h[j++]=i;
		}
		printf("%d\n",j);
		for(i=0;i<j;i++)
			printf("%d\n",h[i]);
	}
	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