zoukankan      html  css  js  c++  java
  • P1177 公路乘车

    简单的动态规划

    题目ID:1177

    题目名称:公路乘车

    有效耗时:15 ms

    空间消耗:516 KB


    程序代码:

     1 #include<iostream>
     2 using namespace std;
     3 
     4 int f[11];
     5 int g[102];
     6 int main(){
     7     for(int i=1;i<=10;i++){
     8         cin>>f[i];
     9     }
    10     for(int i=1;i<=102;i++){
    11         g[i]=0;
    12     }
    13     
    14     int a;
    15     cin>>a;
    16     
    17     for(int i=1;i<=a;i++){
    18         int min=65536;
    19         if(i<=10){
    20             for(int j=1;j<=10;j++){
    21                 if(i>=j&&(g[i-j]+f[j])<min)
    22                     min=g[i-j]+f[j];
    23             }
    24         }
    25         else{
    26             for(int j=1;j<i;j++){
    27                 if((g[i-j]+g[j])<min)
    28                     min=g[i-j]+g[j];
    29             }
    30         }
    31         g[i]=min;
    32     //    cout<<g[i]<<" ";
    33     }
    34 //    cout<<endl;
    35 
    36     
    37     cout<<g[a]<<endl;
    38 //    system("pause");
    39     return 0;
    40 
    41 }

    题目描述

    一个特别的单行街道在每公里处有一个汽车站。顾客根据他们乘坐汽车的公里使来付费。例如样例的第一行就是一个费用的单子。

    没有一辆车子行驶超过10公里,一个顾客打算行驶n公里(1<=n<=100),它可以通过无限次的换车来完成旅程。最后要求费用最少。

    输入格式

    第一行十个整数分别表示行走1到10公里的费用(<=500)。注意这些数并无实际的经济意义,即行驶10公里费用可能比行驶一公里少。
    第二行一个整数n表示,旅客的总路程数。

    输出格式

    仅一个整数表示最少费用。

    样例输入

    12 21 31 40 49 58 69 79 90 101
    15
    

    样例输出

    147
    

    数据范围与提示

  • 相关阅读:
    面向对象——多态
    面向对象——继承
    面向对象—封装
    数组
    控制语句
    认识Java
    出入境大厅流程
    2021上半年感想
    记录2020
    读后感《从三分钟热度到一万个小时》
  • 原文地址:https://www.cnblogs.com/jinfang134/p/4034395.html
Copyright © 2011-2022 走看看