人活着系列之芳姐和芳姐的猪
2014-08-07 19:57
162 查看
人活着系列之芳姐和芳姐的猪
题目描述
芳姐特别喜欢猪,所以,她特意养了m个猪圈,顺便在k条无向边,每条边有都有起点v,距离.....芳姐和猪们约定好,每天去一个固定猪圈去吃饭,芳姐为了不累着她可爱的猪们,想知道所有的猪吃饭走的最短路程是多少?
输入
第一行,猪的个数m(k(1<=k<=1200).(猪的编号为1..m)N+1行N头猪所在的猪圈号第n+k+1行:u、1<=w<=255)
m个猪圈连通。
输出
示例输入
3 4 5 2 3 4 1 2 1 1 3 5 2 3 7 2 4 3 3 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>
相关文章推荐
- 人活着系列之芳姐和芳姐的猪 oj
- SDUT 2929-人活着系列之芳姐和芳姐的猪(最短路Floyd)
- SDUT 2929 人活着系列之芳姐和芳姐的猪
- 人活着系列之芳姐和芳姐的猪 Floyd
- 人活着系列之芳姐和芳姐的猪(Floyd)
- 人活着系列之芳姐和芳姐的猪
- sdutacm-人活着系列之芳姐和芳姐的猪
- 人活着系列之芳姐和芳姐的猪(最短路_SPFA+前向星)
- 人活着系列之芳姐和芳姐的猪(sdut_2929)
- 人活着系列之芳姐和她的猪
- SDUTOJ -2929 人活着系列之芳姐和芳姐的猪(Floyd)
- 人活着系列之芳姐和芳姐的猪(Floyd)
- SDUTOJ2929 ——人活着系列之芳姐和芳姐的猪 暴力SPFA和弗洛伊德(最短路)
- 人活着系列之芳姐和芳姐的猪---2929
- 人活着系列之芳姐和芳姐的猪
- 人活着系列之芳姐和芳姐的猪
- SDUTOJ 2929 人活着系列之芳姐和芳姐的猪(最短路)
- SDUToj 2929 人活着系列之芳姐和芳姐的猪(Floyd+枚举)
- 人活着系列之芳姐和芳姐的猪
- SDUT 2929 人活着系列之芳姐和芳姐的猪