Lift Hopping, UVa 10801【Floyd】
来源:互联网 发布:网络磕是什么意思 编辑:程序博客网 时间:2024/06/10 12:13
#include<cstdio>#include<iostream>#include<cmath>#include<algorithm>#include<cstring>#include<vector>using namespace std;int n,k;int v[10];vector<int> can[10];int dis[110][110];#define INF 1e9int main(void){int tmp;while(scanf("%d%d",&n,&k)==2){for(int i=0;i<=101;i++)for(int j=0;j<=101;j++)i==j?dis[i][j]=0:dis[i][j] = INF;for(int i=1;i<=n;i++)scanf("%d",&v[i]);for(int i=1;i<=n;i++)can[i].clear();for(int i=1;i<=n;i++){int tmp;char s;while(scanf("%d%c",&tmp,&s)){can[i].push_back(tmp);if(s=='\n')break;}}for(int i=1;i<=n;i++){for(int s=0;s<can[i].size();s++){for(int t=0;t<can[i].size();t++)dis[can[i][s]][can[i][t]]=min(dis[can[i][s]][can[i][t]],abs(can[i][t]-can[i][s])*v[i]);}}for(int p=0;p<=100;p++){for(int i=0;i<=100;i++){for(int j=0;j<=100;j++){dis[i][j] = min(dis[i][j],dis[i][p]+dis[p][j]+60);}}}if(dis[0][k]==INF)puts("IMPOSSIBLE");else printf("%d\n",dis[0][k]);}return 0;}细节:可能会出现当前在第i层却返回到j(j<i)层的情况....floyd的边界不能是k,要是100
1 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 (最短路)
- sizeof与strlen的区别
- Linux中显示一个文件最后几行的命令是什么?
- android快速开发框架
- C#综合揭秘——利用泛型与反射更新实体(ADO.NET Entity Framework)
- VC++ 截取字符串的常用方法(AfxExtractSubString)
- Lift Hopping, UVa 10801【Floyd】
- canvas 的使用1
- springMVC4中json与对象互转实例解析请求响应数据转换器
- 为何要用多线程编程
- BZOJ1090记忆化搜索
- 检查变量是否存在
- 上传头像功能,需要对上传的图片进行截取,springMVC+spring+mybatis。
- 数据库中的键和约束
- 虚函数和纯虚函数