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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

A - 小彭玉的扫荡食堂计划

發布時間:2023/12/14 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 A - 小彭玉的扫荡食堂计划 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

A?-?小彭玉的掃蕩食堂計劃

Time Limit:?20000/10000MS (Java/Others)????Memory Limit:?128000/64000KB (Java/Others) Submit?Status

Problem Description

嘩啦啦村的食堂很奇怪,就是如果這個飯卡所剩金額低于5元的話,這個飯卡就不能刷了。

也就是說,只要這個飯卡金額大于等于5元,就可以隨便刷~

?

有一天,小彭玉看了看嘩啦啦食堂的飯,“哇,好好吃!我要全部都買下來!”

但是小彭玉并沒有那么多錢,于是他準備充分利用自己的錢,去買這些食物!

請問最后小彭玉的飯卡余額最少能到多少?

Input

多組測試數據(最多100組)

第一行 n,表示有n個菜

第二行 接下來n個數字,a[i]表示第i道菜多少錢

第三行 一個數m,表示小彭玉的飯卡,一開始有m元

1<=n<=1000,1<=a[i]<=10000,1<=m<=10000

Output

輸出一個整數,表示最后飯卡顯示的金額數

Sample Input

1 10000 6 10 1 2 3 2 1 1 2 3 2 1 50

Sample Output

-9994 32
解法:01背包的使用,因為5塊錢可以買任何東西,所以,我們把價格最貴的菜獨自拿出來,我們只需要用(N-1)份菜去查找價錢容量為(M-5),所能夠買到的最大值。最后在減去價格最大的那份菜的價格即可。 1 #include<stdio.h> 2 #include<string.h> 3 #include<iostream> 4 #include<algorithm> 5 using namespace std; 6 #define MAX 10100 7 int DP[MAX]; 8 int val[MAX]; 9 int main() 10 { 11 int N,M,i,j,Max; 12 while(scanf("%d",&N)!=EOF) 13 { 14 for(i=0,Max=0;i<N;i++) 15 { 16 scanf("%d",&val[i]); 17 if(val[i]>Max)Max=val[i];/*取最大值*/ 18 } 19 scanf("%d",&M); 20 for(i=0;i<=M;i++)DP[i]=0; 21 if(M<5||N==0){printf("%d\n",M);continue;} 22 else 23 { 24 int sign=1; 25 for(i=0;i<N;i++) 26 { 27 if(sign&&val[i]==Max)/*去除一次最大值*/ 28 {sign=0;continue;} 29 for(j=M-5;j>=val[i];j--) 30 { 31 if(DP[j]<DP[j-val[i]]+val[i]) 32 { 33 DP[j]=DP[j-val[i]]+val[i]; 34 } 35 } 36 } 37 printf("%d\n",M-DP[M-5]-Max); 38 } 39 } 40 return 0; 41 } View Code

?

轉載于:https://www.cnblogs.com/Wurq/p/4574064.html

總結

以上是生活随笔為你收集整理的A - 小彭玉的扫荡食堂计划的全部內容,希望文章能夠幫你解決所遇到的問題。

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