UVa 10801 Lift Hopping / floyd
来源:互联网 发布:淘宝设置满多少包邮 编辑:程序博客网 时间:2024/05/19 03:46
乘电梯 求到目标层的最短时间 有n个电梯 换一个电梯乘需要额外60秒
所以建图时每个电梯自己能到的层数先把时间算好 这是不需要60秒的
然后做floyd时 如果松弛 肯定是要换电梯 所以要加60秒
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <algorithm>#include <cmath>#include <cstdlib>using namespace std;int a[110][110];int b[110];int n,m;void floyd(){int i,j,k;for(k = 0;k <= 100; k++)for(i = 0;i <= 100; i++)for(j = 0;j <= 100; j++)a[i][j] = min(a[i][j],a[i][k]+a[k][j]+60);}int main(){int t,n,i,j,k;while(scanf("%d %d",&n,&m)!=EOF){//for(k = 1;k <= n; k++)for(i = 0;i <= 100; i++)for(j = 0;j <= 100; j++){if(i == j)a[i][j] = 0;elsea[i][j] = 999999999;}for(i = 0; i < n; i++)scanf("%d",&b[i]);getchar();for(i = 0; i < n; i++){char str[1000];char *p;gets(str);//puts(str);p = strtok(str," ");int cnt[110];int j = 0;while(p){cnt[j++] = atoi(p);p = strtok(NULL," ");}for(k = 1 ;k < j; k++){for(t = 0; t < k; t++){a[cnt[t]][cnt[k]] = min(a[cnt[t]][cnt[k]],b[i]*abs(cnt[k]-cnt[t]));a[cnt[k]][cnt[t]] = min(a[cnt[k]][cnt[t]],b[i]*abs(cnt[k]-cnt[t]));}}}floyd();if(a[0][m] == 999999999)puts("IMPOSSIBLE");elseprintf("%d\n",a[0][m]);}return 0;}
0 0
- UVa 10801 Lift Hopping / floyd
- Lift Hopping - UVa 10801 Floyd
- Lift Hopping, UVa 10801【Floyd】
- UVA 10801 Lift Hopping
- uva 10801 - Lift Hopping
- UVa 10801 - Lift Hopping
- uva 10801 - Lift Hopping
- UVA 10801 Lift Hopping
- UVA 10801 Lift Hopping
- uva 10801 - Lift Hopping
- uva 10801 Lift Hopping
- UVA 10801 Lift Hopping
- UVa 10801 - Lift Hopping (Floyd, Dijkstra, SPFA三合一)
- UVA 10801 - Lift Hopping(dijkstra)
- UVA 10801(p381)----Lift Hopping
- uva 10801 - Lift Hopping(最短路Dijkstra)
- UVA 10801 - Lift Hopping Dijkstra 算法
- UVA 10801 Lift Hopping (最短路)
- Java开发中的23种设计模式详解 学习
- 指数增长模型
- SD卡fat文件系统移植
- Leetcode: Linked List Cycle
- [BZOJ]2127: happiness 最小割
- UVa 10801 Lift Hopping / floyd
- PHP输入流和表单提交类型浅析
- 电子眼拍原理
- NYOJ 125 盗梦空间
- pygame模块中的小游戏。
- lucene3.6.2之自定义评分
- linux分布式编译:distcc配置方法--转
- 入门HTML之align 单元格间距cellspacing 单元格边距cellpadding
- win8图片默认不显示