洛谷 1359 租用游艇 【最短路】
2017-08-18 10:26
190 查看
题目描述
长江游艇俱乐部在长江上设置了n 个游艇出租站1,2,…,n。游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇。游艇出租站i 到游艇出租站j 之间的租金为r(i,j),1<=i<=j<=n。试设计一个算法,计算出从游艇出租站1 到游艇出租站n 所需的最少租金。对于给定的游艇出租站i 到游艇出租站j 之间的租金为r(i,j),1<=i<j<=n,编程计算从游艇出租站1 到游艇出租站n所需的最少租金。
保证计算过程中任何时刻数值都不超过10^6
输入输出格式
输入格式:由文件提供输入数据。文件的第1 行中有1 个正整数n(n<=200),表示有n个游艇出租站。接下来的n-1 行是一个半矩阵r(i,j),1<=i<j<=n。
输出格式:
程序运行结束时,将计算出的从游艇出租站1 到游艇出租站n所需的最少租金输出到文件中。
输入 样例
3
5 15
7
输出 样例
12
///题目描述的不清楚 第一行 1-2 距离5 1-3 距离 15 2-3 距离 7
题目比较简单 三种解法 我永 floyd
和 dijkstra 都写一次 巩固知识
Dijkstra
#include<bits/stdc++.h> #define inf 999999999 #define mem(a,b) memset(a,b,sizeof(a)); using namespace std; int f[100001]; int dist[10001]; int a[1001][1001]; int main(){ int n,j,k,l,i; cin>>n; for(j=0;j<=n;j++){ for(k=0;k<=n;k++){ a[j][k]=inf; if(j==k) a[j][k]=0; } dist[j]=inf; } for(j=1;j<=n;j++){ for(k=j+1;k<=n;k++){ cin>>a[j][k]; } } for(j=1;j<=n;j++){ dist[j]=a[1][j]; } mem(f,0); f[1]=1; for(j=1;j<=n;j++){ int mi=inf; for(i=1;i<=n;i++){ if(!f[i]&&dist[i]<mi){ mi=dist[i]; k=i; } } f[k]=1; for(i=1;i<=n;i++){ if(!f[i]&&a[k][i]+dist[k]<dist[i]){ dist[i]=dist[k]+a[k][i]; } } // for(i=1;i<=n;i++){ // cout<<dist[i]<<" "; //} //cout<<endl; } cout<<dist <<endl; return 0; }
floyd
#include<bits/stdc++.h> #define inf 999999999 #define mem(a,b) memset(a,b,sizeof(a)); using namespace std; int f[100001]; int dist[10001]; int a[1001][1001]; int d[10001][10001]; int main(){ int n,j,k,l,i; cin>>n; for(j=0;j<=n;j++){ for(k=0;k<=n;k++){ a[j][k]=inf; if(j==k) a[j][k]=0; } //dist[j]=inf; } for(j=1;j<=n;j++){ for(k=j+1;k<=n;k++){ cin>>a[j][k]; } } for(j=1;j<=n;j++){ for(k=1;k<=n;k++){ for(i=1;i<=n;i++){ a[k][i]=min(a[k][i],a[k][j]+a[j][i]); } } } cout<<a[1] <<endl; return 0; }
相关文章推荐
- [洛谷1359] 租用游艇
- (洛谷 1359) 租用游艇
- P1359 租用游艇 洛谷
- |洛谷|动态规划|P1359 租用游艇
- 19th 【最短路 floyd】租用游艇
- AC日记——租用游艇 洛谷 P1359
- 租用游艇问题
- 洛谷 1144 最短路计数 bfs
- 洛谷 1339 最短路
- 洛谷 1144 最短路计数 bfs
- 【dp】租用游艇问题
- 租用游艇问题
- 洛谷1346 电车 最短路
- [练习][洛谷1186]最短路 玛丽卡
- (洛谷 1144)最短路计数
- 洛谷P1144 最短路计数
- 【SPFA】洛谷1144 最短路计数
- 【动态规划】租用游艇问题
- 洛谷 1339 最短路
- 洛谷 1144 最短路计数 bfs