有N个景点,其中C个景区有旅馆,求一个起点终点是旅馆的环,输出这个旅馆。。 我还在理解中,话说这个题描述不清楚。。 #include<stdio.h> #include<string.h> #include<stdlib.h> const int INF = 999999999; int mat[101][101]; int hot[101]; int main(void) { int n,c,i,t,k,j,m; int from,to,w,min; while( scanf("%d%d",&n,&c) == 2 ) { for( i = 1;i <= n; i++) for( j = 1;j <= n; j++ ) mat[i][j] = INF; for( i = 1; i <= c; i++ ) scanf("%d",&hot[i]); scanf("%d",&m); for( i = 1; i<= m; i++ ) { scanf("%d%d%d",&from,&to,&w); if( mat[from][to] > w ) mat[from][to] = w; } for( k = 1; k <= n; k++ ) for( i = 1; i <= n; i++ ) for( j = 1; j <= n; j++ ) if( mat[i][j] > mat[i][k] + mat[k][j] && mat[i][k] != INF && mat[k][j] != INF ) mat[i][j] = mat[i][k] + mat[k][j]; for( i = 1,t=-1,min = INF; i <= c; i++ ) if( mat[hot[i]][hot[i]] < min ) min = mat[t=hot[i]][hot[i]]; if( t == -1 ) printf("I will nerver go to that city!/n"); else printf("%d/n",t); } return 0; }