小P的故事——神奇的Dota 背包__SDUT

來源:互聯網
上載者:User

小P的故事——神奇的Dota

題目描述 小P非常喜歡玩dota,不分晝夜的玩 ,結果他連做夢也都是裡面的畫面,一天晚上小P剛躺下就做了一個神奇的夢。。。 不死族的巫妖王發工資拉,死亡騎士拿到一張N元的鈔票(記住,只有一張鈔票),為了防止自己在戰鬥中頻繁的死掉,他決定給自己買一些道具,於是他來到了地精商店前. 死亡騎士:"我要買道具!" 地精商人:"我們這裡有三種道具,血瓶150塊一個,魔法藥200塊一個,無敵藥水350塊一個." 死亡騎士:"好的,給我一個血瓶." 說完他掏出那張N元的大鈔遞給地精商人. 地精商人:"我忘了提醒你了,我們這裡沒有找客人錢的習慣的,多的錢我們都當小費收了的,嘿嘿." 死亡騎士:"......" 死亡騎士想,與其把錢當小費送個他還不如自己多買一點道具,反正以後都要買的,早點買了放在家裡也好,但是要盡量少讓他賺小費. 現在死亡騎士感覺自己的智商不夠用所以希望小P幫他計算一下,最少他要給地精商人多少小費.但是小P的智商可是出了名的“不忍直視”啊,聰明非凡的你所以你能幫幫他嗎。 輸入 輸入資料的第一行是一個整數T(1<=T<=100),代表測試資料的數量.然後是T行測試資料,每個測試資料只包含一個正整數N(1<=N<=10000),N代表死亡騎士手中鈔票的面值.   注意:地精商店只有題中描述的三種道具. 輸出  對於每組測試資料,請你輸出死亡騎士最少要浪費多少錢給地精商人作為小費.   樣本輸入

2 380 200
樣本輸出
30 0
#include<algorithm>#include<stdio.h>#include<string.h>#define inf 10001using namespace std;int dp[inf];int main(){    int i, j, t, n, a[3]={150, 200, 350};    scanf("%d" ,&t);    while(t--){        scanf("%d", &n);        memset(dp, 0, sizeof(dp));        for(i=0; i<3; i++)            for(j=a[i]; j<=n; j++)                dp[j] = max(dp[j], dp[j- a[i] ] + a[i]);        printf("%d\n", n-dp[n]);    }    return 0;}


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.