国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

動態規劃----背包

2019-11-08 20:00:24
字體:
來源:轉載
供稿:網友

高數Umaru系列(9)——哈士奇

Time Limit: 1000MS Memory Limit: 65536KB

PRoblem Description

由于高數巨養的喵星人太傲嬌了,要天天吃新鮮貓糧而且還經常欺負高數巨,所以高數巨決定買幾條哈士奇嘗嘗鮮。這天高數巨來到了二手狗市場買哈士奇,高數巨看完了所有的哈士奇,記下了每條哈士奇的價格,并根據對它們的好感程度給它們每只都賦予了一個萌值。高數現在手里有X元,她想通過購買若干條哈士奇來獲得盡可能多的萌值。現在給定高數巨手里的錢X以及N條哈士奇的價格和萌值,求高數巨最多可獲得多少萌值

Input

 多組輸入。

對于每組輸入,第一行有兩個整數N,X(1 < = N < = 100,1 < = X < = 1000),分別表示哈士奇的數量和高數巨的錢數

接下來的N行每行有兩個整數Pi,Mi(1 < = Pi,Mi < = 100),分別表示第i條哈士奇的價格和萌值

Output

對于每組數據,輸出一個整數,表示高數巨最多可以獲得的萌值,每組輸出占一行

Example Input

2 10050 2060 403 10020 5520 3590 951 1020 50

Example Output

40950

Hint

 

Author

 Shannon

  *******動態規劃問題:

         0-1背包問題, 每種哈士奇的條數為1,不存在多個 。

        公式:

          sum[j] = max(sum[j-v[i]]+w[i], sum[j]);

代碼實現:

#include <stdio.h>#include <stdlib.h>#include <string.h>int max(int a, int b){   if(a>=b)   return a;   else   return b;}int main(){    int a, b, i, j;    int  sum[1113];    int v[116], w[116];    while(~scanf("%d %d", &a, &b))    {       memset(sum, 0, sizeof(sum));       memset(w, 0, sizeof(w));       memset(v, 0, sizeof(v));       for(i=1;i<=a;i++)       {          scanf("%d %d", &v[i], &w[i]);       }       for(i=1;i<=a;i++)       {          for(j=b;j>=0;j--)          {             if(j>=v[i])             sum[j] = max(sum[j-v[i]]+w[i], sum[j]);          }       }       printf("%d/n", sum[b]);    }    return 0;} 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 扎囊县| 定安县| 英吉沙县| 社旗县| 沾化县| 玉田县| 内江市| 稷山县| 新蔡县| 拜城县| 霍州市| 张家港市| 灵台县| 栾城县| 玉树县| 东乌| 登封市| 睢宁县| 泽库县| 宾川县| 宜宾市| 泽州县| 库伦旗| 司法| 枣庄市| 九寨沟县| 昌图县| 武强县| 许昌市| 北辰区| 闸北区| 巨野县| 丹阳市| 绩溪县| 新建县| 宽甸| 天津市| 冕宁县| 武山县| 巴林右旗| 进贤县|