多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > hdu2126---Buy the souvenirs(01背包方案數)

hdu2126---Buy the souvenirs(01背包方案數)

來源:程序員人生   發布時間:2015-04-10 07:54:43 閱讀次數:3601次

Problem Description
When the winter holiday comes, a lot of people will have a trip. Generally, there are a lot of souvenirs to sell, and sometimes the travelers will buy some ones with pleasure. Not only can they give the souvenirs to their friends and families as gifts, but also can the souvenirs leave them good recollections. All in all, the prices of souvenirs are not very dear, and the souvenirs are also very lovable and interesting. But the money the people have is under the control. They can’t buy a lot, but only a few. So after they admire all the souvenirs, they decide to buy some ones, and they have many combinations to select, but there are no two ones with the same kind in any combination. Now there is a blank written by the names and prices of the souvenirs, as a top coder all around the world, you should calculate how many selections you have, and any selection owns the most kinds of different souvenirs. For instance:

And you have only 7 RMB, this time you can select any combination with 3 kinds of souvenirs at most, so the selections of 3 kinds of souvenirs are ABC (6), ABD (7). But if you have 8 RMB, the selections with the most kinds of souvenirs are ABC (6), ABD (7), ACD (8), and if you have 10 RMB, there is only one selection with the most kinds of souvenirs to you: ABCD (10).

Input
For the first line, there is a T means the number cases, then T cases follow.
In each case, in the first line there are two integer n and m, n is the number of the souvenirs and m is the money you have. The second line contains n integers; each integer describes a kind of souvenir.
All the numbers and results are in the range of 32-signed integer, and 0<=m<=500, 0

/************************************************************************* > File Name: hdu2126.cpp > Author: ALex > Mail: zchao1995@gmail.com > Created Time: 2015年03月05日 星期4 21時04分58秒 ************************************************************************/ #include <map> #include <set> #include <queue> #include <stack> #include <vector> #include <cmath> #include <cstdio> #include <cstdlib> #include <cstring> #include <iostream> #include <algorithm> using namespace std; const double pi = acos(-1); const int inf = 0x3f3f3f3f; const double eps = 1e⑴5; typedef long long LL; typedef pair <int, int> PLL; int dp[510]; int dp2[510]; int goods[35]; int main () { int t; int n, m; scanf("%d", &t); while (t--) { scanf("%d%d", &n, &m); int all = 0; for (int i = 1; i <= n; ++i) { scanf("%d", &goods[i]); } int tmp = m; sort (goods + 1, goods + 1 + n); for (int i = 1; i <= n; ++i) { if (tmp >= goods[i]) { ++all; tmp -= goods[i]; } else { break; } } if (!all) { printf("Sorry, you can't buy anything. "); continue; } memset (dp, 0, sizeof (dp)); for (int i = 0; i <= m; ++i) { dp2[i] = 1; } for (int i = 1; i <= n; ++i) { for (int j = m; j >= goods[i]; --j) { if (dp[j] < dp[j - goods[i]] + 1) { dp[j] = dp[j - goods[i]] + 1; dp2[j] = dp2[j - goods[i]]; } else if (dp[j] == dp[j - goods[i]] + 1) { dp2[j] += dp2[j - goods[i]]; } } } printf("You have %d selection(s) to buy with %d kind(s) of souvenirs. ", dp2[m], all); } return 0; }
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 成人叼嘿视频免费网站 | 欧美freesex10一|3 | 欧美激情视频一区二区三区 | 在线观看免费a∨网站 | 视频在线网站 | 欧美毛片网站 | 在线爱爱| 中文字幕2022永久在线 | 美女网站免费观看视频 | 日韩中文字幕视频在线 | 精品视频在线观看一区二区三区 | 国产69精品久久 | 国产一区二区三区精品久久呦 | 一级毛片大全免费播放 | avwww在线| 91精品在线免费观看 | 欧美91精品久久久久网免费 | 欧美a级v片不卡在线观看 | 中文字幕首页 | 亚洲男人影院 | 香蕉免费看一区二区三区 | 国产a国产片色老头 | xx在线视频 | 欧美视频日韩专区午夜 | 久久就是精品 | 成人在激情在线视频 | 在线爽 | 全网免费在线播放视频入口 | 在线观看亚洲成人 | 叼嘿视频在线观看 | 99精品国产在这里白浆 | 国产成人永久免费视 | 黑人双渗透 | 精品视频中文字幕 | 欧美一级视频在线高清观看 | 精品久久久久久影院免费 | 欧美精品另类 | 97成人在线观看 | 精品久久久久久综合网 | ww在线观视频免费观看 | 泰国一级毛片aaa下面毛多 |