人活着系列之芳姐和芳姐的猪

来源:互联网 发布:淘宝检测中心 编辑:程序博客网 时间:2024/04/28 18:55

                                                                         人活着系列之芳姐和芳姐的猪

题目描述

芳姐特别喜欢猪,所以,她特意养了m个猪圈,顺便在k条无向边,每条边有都有起点v,距离.....芳姐和猪们约定好,每天去一个固定猪圈去吃饭,芳姐为了不累着她可爱的猪们,想知道所有的猪吃饭走的最短路程是多少?

输入

 第一行,猪的个数mk(1<=k<=1200).(猪的编号为1..m)

N+1N头猪所在的猪圈号n+k+1行:u1<=w<=255)

m个猪圈连通。

输出

 

示例输入

3 4 52341 2 11 3 52 3 72 4 33 4 5

示例输出

8
#include <iostream>#include<stdio.h>#include<math.h>#include<string.h>#include<algorithm>using namespace std;int map[601][601];int Max=10000000;int fld(int n){    int i,j,k;    for(k=1;k<=n;k++)    {        for(i=1;i<=n;i++)        {            for(j=1;j<=n;j++)            {                if(map[i][j]>map[i][k]+map[k][j])                map[i][j]=map[i][k]+map[k][j];            }        }    }}int main(){    int n,m,k,i,j,quan[601],a,b,d;    scanf("%d%d%d",&n,&m,&k);    for(i=1;i<=m;i++)    {      for(j=1;j<=m;j++)      {          map[i][j]=map[j][i]=Max;      }      map[i][i]=0;    }    for(i=1;i<=n;i++)     scanf("%d",&quan[i]);     while(k--)     {         scanf("%d%d%d",&a,&b,&d);         if(map[a][b]>d)         map[a][b]=map[b][a]=d;     }    fld(m);    int sum;    int min=10000000;    for(i=1;i<=m;i++)    {        sum=0;        for(j=1;j<=n;j++)        {            sum+=map[i][quan[j]];        }        if(sum<min)        min=sum;    }    printf("%d\n",min);}</span>


0 0
原创粉丝点击