注意从0开始,计算时应计算dis[y],y是终点,如果防止错,所有的输入可以加上1,表示从1开始
#include<stdio.h>
#include<string.h>
#define data 1000000
int map[1100][1100];
int dis[1100];
int vis[1100];
int main()
{
int n,m,p,i,j;
while(scanf("%d%d",&n,&m)!=EOF)
{
memset(vis,0,sizeof(vis));
for(i=0;i<=n;i++)
for(j=0;j<=n;j++)
map[i][j]=data;
int a,b,t;
for(i=1;i<=m;i++)
{
scanf("%d%d%d",&a,&b,&t);
if(map[a][b]>t) map[a][b]=map......
阅读全文