最短路径
#include "stdio.h" /* 5 5 2 3 2 1 2 -3 1 5 5 4 5 2 3 4 3 0 -3 2 -1 2 4 */ int main() { int a[10][10],dis[10],book[10], u[10], v[10], w[10] ,n, m; int inf = 9999999; int i, k, flag; scanf("%d%d",&n,&m); for(i = 1; i <= m; i++) { scanf("%d%d%d",&u[i],&v[i],&w[i]); } for(i = 1; i <= n; i++){ dis[i] = inf; } dis[1] = 0; for(k = 1; k <= n - 1; k++){ flag = 0; for(i = 1; i <= m; i++){ if(dis[v[i]] > dis[u[i]] + w[i]){ dis[v[i]] = dis[u[i]] + w[i]; flag = 1; } } if(flag == 0)break; } for(i = 1; i <= n; i++){ printf("%d ",dis[i]); } return 0; }