A 小彭玉的掃蕩食堂計畫

2022-05-28 01:45:10 字數 1207 閱讀 5718

submit

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

10000610

1 2 3 2 1 1 2 3 2 1

50

sample output

-9994

32解法:01揹包的使用,因為5塊錢可以買任何東西,所以,我們把**最貴的菜獨自拿出來,我們只需要用(n-1)份菜去查詢價錢容量為(m-5),所能夠買到的最大值。最後在減去**最大的那份菜的**即可。

1 #include2  #include

3 #include4 #include5

using

namespace

std;

6#define max 10100

7int

dp[max];

8int

val[max];

9int

main()

1019 scanf("

%d",&m);

20for(i=0;i<=m;i++)dp[i]=0;21

if(m<5||n==0)

22else

2329

for(j=m-5;j>=val[i];j--)

3035}36

}37 printf("

%d\n

",m-dp[m-5]-max);38}

39}40return0;

41 }

view code

小Z的AK計畫

洛谷鏈結 在小z的家鄉,有機房一條街,街上有很多機房。每個機房裡都有一萬個人在切題。小z剛刷完codechef,準備出來逛逛。機房一條街有 n 個機房,第 i 個機房的座標為 xi 小z的家座標為 0。小z在街上移動的速度為1,即從 x1 到 x2 所耗費的時間為 x1 x2 每個機房的學生數量不同...

小Z的AK計畫

洛谷鏈結 在小z的家鄉,有機房一條街,街上有很多機房。每個機房裡都有一萬個人在切題。小z剛刷完codechef,準備出來逛逛。機房一條街有 n 個機房,第 i 個機房的座標為 xi 小z的家座標為 0。小z在街上移動的速度為1,即從 x1 到 x2 所耗費的時間為 x1 x2 每個機房的學生數量不同...

Luogu 小Z的AK計畫

luogu2107 一開始打了乙個60分的暴力dp,結果一分都沒得 本地調了好久才發現是沒開long long。由於我的dp方程沒有任何性質,就是乙個01揹包,所以就沒啥可優化的了。這個題的正解其實不是dp,而是貪心 由於是單向的走,在每個位置選用時少的機房ak總是好的,這也就等價於不在用時多的機房...