日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ssl1643-最小乘车费用【dp练习】

發布時間:2023/12/3 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ssl1643-最小乘车费用【dp练习】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最小乘車費用

題目

  假設某條街上每一公里就有一個公共汽車站,并且乘車費用如下表:
  
  而任意一輛汽車從不行駛超過10公里。某人想行駛n公里,假設他可以任意次換車,請你幫他找到一種乘車方案,使得總費用最小
  注意:10公里的費用比1公里小的情況是允許的。

Input

  輸入文件BUSSES.IN,文件共兩行,第一行為10個不超過200的整數,依次表示行駛1~10公里的費用,相鄰兩數間用一個空格隔開;第二行為某人想要行駛的公里數。

Output

  輸出文件BUSSES.OUT,僅一行,包含一個整數,表示行使這么遠所需要的最小費用。

Sample Input

12 21 31 40 49 58 69 79 90 101
15

Sample Output

147

ideas of solving a problem

這道題就是要求求出在到達一定公里數的情況下求出最小花費。那我們用f[i]來表示到達i公里所用的最小花費。然后背包的動態轉移方程 f[i]=min(f[i],f[i-j]+a[j])

Code

#include<cstdio> #include<cstring> #include<iostream> using namespace std; int f[1001],a[11],s,m; int main() {memset(f,1000000,sizeof(f));//賦值一個很大的整數for (int i=1;i<=10;i++) scanf("%d",&a[i]);//輸入scanf("%d",&m);//輸入f[0]=0;//初始預處理for (int i=1;i<=m;i++)//枚舉路程for (int j=1;j<=10;j++)//各種價格{if (i-j>=0)//判斷越界 f[i]=min(f[i],f[i-j]+a[j]);//動態轉移}printf("%d",f[m]);//get√ }

總結

以上是生活随笔為你收集整理的ssl1643-最小乘车费用【dp练习】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。