人活着系列之芳姐和芳姐的猪
Time Limit: 1000ms Memory limit: 65536K
题目描述
百年来,人活着是为了什么这个问题一直萦绕在人的脑海里,也一直困扰着人的思想。人活着就是活着了,为活着本身而活着,而不是为活着之外的任何事物而活着的。正因为活着,所以活着。对,是有点莫明其妙,但也是一句最受用的话。
m个猪圈,顺便在u,终点.....芳姐和猪们约定好,每天去一个固定猪圈去吃饭,芳姐为了不累着她可爱的猪们,想知道所有的猪吃饭走的最短路程是多少?
输入
n(1<=n<=350),猪圈个数 k(1<=k<=1200).(猪的编号为 N+1行 .
n+k+1行:v,两猪圈间距离(注:有的猪圈可能是空的,也可能有多头猪,保证<font face='\"Times' new="" roman,="" serif\"="">m个猪圈连通。
输出
示例输入
3 4 5 2 3 4 1 2 1 1 3 5 2 3 7 2 4 3 3 4 5
示例输出
8
提示
来源
cz
示例程序
- #include<stdio.h>
- #include<string.h>
- #include<stdlib.h>
- #define N 9999999
- int n,m,t;
- int q[601],map[601][601],p[2001],num[2001];
- int sum;
- int pp;
- int main()
- {
- int i,j,k;
- while(scanf("%d%d%d",&n,&m,&t)!=EOF)
- {
- sum = 0;
- int tt;
- for(i=0; i<n; i++)
- {
- "%d",&q[i]);
- }
- for(i=1; i<=m; i++)
- {
- for(j=1; j<=m; j++)
- {
- map[i][j] = N;
- }
- map[i][i] = 0;
- }
- int x,y,z;
- for(i=0; i<t; i++)
- {
- "%d%d%d",&x,&y,&z);
- if(map[x][y] >z)
- {
- map[x][y] = z;
- map[y][x] = z;
- }
- }
- int ee = N;
- for(i=1; i<=m; i++)
- {
- for(j=1; j<=m; j++)
- {
- for(k=1; k<=m; k++)
- {
- if(map[j][k] > map[j][i] + map[i][k])
- {
- map[j][k] = map[j][i] + map[i][k];
- }
- }
- }
- }
- int min;
- int sum1 = N;
- //printf("%d\n",ee);
- for(i=1; i<=m; i++)
- {
- min = N;
- sum = 0;
- for(j=0; j<n; j++)
- {
- min = map[q[j]][i];
- sum = sum + min;
- }
- if(sum1>sum)
- {
- sum1 = sum;
- }
- }
- "%d\n",sum1);
- //prime();
- }
- return
- }