标签:item 决定 subject == col 正整数 整数 int else
输入包含多组数据,每组数据第一行包含两个正整数m(1≤m≤500)和n(1≤n≤30),其中n表示有n个收费站,编号依次为1、2、…、n。出发地的编号为0,终点的编号为n,即需要从0到n。
紧接着m行,每行包含三个整数f、t、c,(0≤f, t≤n; 1≤c≤10),分别表示从编号为f的地方开到t,需要交c元的过路费。
对应每组数据,请输出至少需要交多少过路费。
8 4
0 1 10
0 2 5
1 2 2
1 3 1
2 1 3
2 3 9
2 4 2
3 4 4
7
#include "stdio.h" int main(){ int a[31][31]; int m,n; while(scanf("%d%d",&m,&n)!=EOF){ for(int i=0;i<31;i++){ for(int j=0;j<31;j++){ a[i][j]=0; } } int f,t,c; for(int i=0;i<m;i++){ scanf("%d%d%d",&f,&t,&c); a[f][t]=c; } for(int k=0;k<=n;k++){ for(int i=0;i<=n;i++){ for(int j=0;j<=n;j++){ if(k!=i&&k!=j&&i!=j){ if(a[i][k]>0&&a[k][j]>0&&a[i][j]>0) a[i][j]=(a[i][k]+a[k][j])<a[i][j]?a[i][k]+a[k][j]:a[i][j]; else if(a[i][k]>0&&a[k][j]>0&&a[i][j]==0) a[i][j]=a[i][k]+a[k][j]; } } } } printf("%d\n",a[0][n]); } }
标签:item 决定 subject == col 正整数 整数 int else
原文地址:https://www.cnblogs.com/achao123456/p/10163955.html