租用游艇问题

来源:互联网 发布:java短链接生成 编辑:程序博客网 时间:2024/05/16 18:36
#include "iostream"#include "algorithm"#include "fstream"using namespace std;/*f[i][j]表示出租站i到出租站j之间的最少租金f[i][j] = min{f[i][k]+f[k][j]}*/int f[50][50];int a[50][50];int dyna(int n){    //初始化    for(int i=1; i<=n; i++)        for(int j=1; j<=n; j++)            f[i][j] = a[i][j];    for(int r=2; r<=n; r++)  //问题规模        for(int i=1; i<=n-r+1; i++)  //区间左端点        {            int j = i + r - 1;  //区间右端点            for(int k=i+1; k<=j; k++)  //断点            {                int temp = f[i][k] + f[k][j];                if(temp < f[i][j])                    f[i][j] = temp;            }        }    return f[1][n];}int main(){    ifstream fin("rend.txt");    cout  << "输入出租站个数:";    int n;    fin >> n;  cout << n;    cout << "\n输入租金:\n";    for(int i=1; i<=n; i++)    {        for(int j=1; j<=n-i; j++)        {            fin >> a[i][i+j];   //a[i][j]表示从i到j的租金            cout << a[i][i+j] << " ";        }        cout << endl;    }    cout << "从出租站1到出租站" << n << "的最少租金为:" << dyna(n) << endl;    fin.close();    return 0;} 

这里写图片描述

0 0
原创粉丝点击