| ||||||||||
| 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:这题WA了我16次,问题居然是我把N,M,W跟F一起读了,导致所有N,M,W都一样,郁闷死了,附邻接矩阵+邻接表Bellman_fordIn Reply To:这题WA了我16次,问题居然是我把N,M,W跟F一起读了,导致所有N,M,W都一样,郁闷死了,附邻接矩阵+邻接表Bellman_ford Posted by:Belldandy at 2011-10-26 17:16:23 邻接矩阵:
Source Code
Problem: 3259 User: Belldandy
Memory: 1300K Time: 860MS
Language: C Result: Accepted
Source Code
#include<stdio.h>
#define INF 999999
int farm[600][600]={0};
int bellman(int n)
{
int i=0,j=0,k=0,check[600],flag=0;
for(i=1;i<=n;i++)
{
check[i]=INF;
}
check[1]=0;
for(i=0;i<=n;i++)
{
flag=0;
for(j=1;j<=n;j++)
{
for(k=1;k<=n;k++)
{
if(farm[j][k]+check[j]<check[k])
{
check[k]=check[j]+farm[j][k];
flag=1;
}
}
}
if(!flag)
{
return 0;
}
if(i==n)
{
return 1;
}
}
}
int main()
{
int f=0,n=0,m=0,w=0;
int i=0,s=0,e=0,t=0,j=0;
scanf("%d",&f);
while(f--)
{
scanf("%d%d%d",&n,&m,&w);
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
farm[i][j]=INF;
}
}
for(i=0;i<m;i++)
{
scanf("%d%d%d",&s,&e,&t);
if(farm[s][e]>t)
{
farm[s][e]=t;
farm[e][s]=t;
}
}
for(i=0;i<w;i++)
{
scanf("%d%d%d",&s,&e,&t);
if(farm[s][e]>-t)
{
farm[s][e]=-t;
}
}
if(bellman(n))
{
printf("YES\n");
}
else
{
printf("NO\n");
}
}
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator