南邮 OJ 1228 租用游艇问题

来源:互联网 发布:mysql设置中文编码 编辑:程序博客网 时间:2024/05/12 16:10

租用游艇问题

时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 120            测试通过 : 62 

比赛描述

长江游艇俱乐部在长江上设置了n个游艇出租站12,…,n。游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇。游艇出租站i到游艇出租站j之间的租金为r(i,j),1i<jn试设计一个算法,计算出从游艇出租站1到游艇出租站n所需的最少租金。

对于给定的游艇出租站i到游艇出租站j之间的租金为r(i,j), 1i<jn编程计算从游艇出租站1到游艇出租站n所需的最少租金。



输入

输入的第1行中有1个正整数nn<=200),表示有n个游艇出租站。接下来的n-1行是r(i,j), 1i<jn 

输出

 输出计算出的从游艇出租站1到游艇出租站n所需的最少租金。

样例输入

3
5 15
7

样例输出

12

提示

undefined

题目来源

算法设计与实验题解



#include<stdio.h>int main(){int a[200][200],n,i,j,k,sum;scanf("%d",&n);if(1==n){printf("0\n");return 0;}for(i=0;i<n;i++){for(j=i+1;j<n;j++){scanf("%d",&a[i][j]);}}for(sum=1;sum<n;sum++){for(i=0; i<n && sum-i>=0; i++){j = sum-i;for(k=i+1;k<j;k++){if(a[i][j]>a[i][k]+a[k][j]){a[i][j] = a[i][k]+a[k][j];}}}}printf("%d\n",a[0][n-1]);}




0 0