点击打开链接hdu2126

思路: 二维0/1背包
分析:
1 题目给定n个物品的价钱和m的钱,问最多能买到的物品数有几种方案。
2 很明显就可以写出状态转移方程dp[i][j][k]表示的是前i个物品选j个总价钱为k的方案数
那么dp[i][j][k] = dp[i-1][j][k]+dp[i-1][j-1][k-v[i]]。由于都可以把第一维去掉,所以正常的情况下直接写出dp[j][k] = dp[j][k] + dp[j-1][k-v[i]]

代码:


#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;const int N = 35;
const int MAXN = 510;int n , m , v[N];
int dp[N][MAXN];void solve(){memset(dp , 0 , sizeof(dp));dp[0][0] = 1;for(int i = 1 ; i <= n ; i++){for(int j = n ; j >= 1 ; j--){for(int k = m ; k >= v[i] ; k--)dp[j][k] += dp[j-1][k-v[i]];}}int ans;for(int j = n ; j >= 1 ; j--){ans = 0;for(int k = m ; k >= 0 ; k--)ans += dp[j][k];if(ans){printf("You have %d selection(s) to buy with %d kind(s) of souvenirs.\n" , ans , j);return;}}printf("Sorry, you can't buy anything.\n");
}int main(){int Case;scanf("%d" , &Case);while(Case--){scanf("%d%d" , &n , &m); for(int i = 1 ; i <= n ; i++) scanf("%d" , &v[i]);solve();}return 0;
}

【ICPC-283】hdu 2126 Buy the souvenirs(二维0/1背包)相关推荐

  1. hrbust 1611 最强兵力【二维费用完全背包+分类处理】

    最强兵力 Time Limit: 2000 MS Memory Limit: 65535 K Total Submit: 33(17 users) Total Accepted: 18(16 user ...

  2. HDU - 5517 Triple(三维偏序-二维树状数组/CDQ分治)

    题目链接:点击查看 题目大意:给出 n 个二元对 ( a , b ) 和 m 个三元对 ( c , d , e ),对于所有 b == e 的二元对和三元对,可以通过某种运算形成一个新的三元对 ( a ...

  3. HDU 2159 FATE (DP 二维费用背包)

    题目链接 题意 : 中文题不详述. 思路 : 二维背包,dp[i][h]表示当前忍耐值为i的情况下,杀了h个怪得到的最大经验值,状态转移方程: dp[i][h] = max(dp[i][h],dp[i ...

  4. 【HDU - 6514】Monitor(二维差分,前缀和)

    题干: Monitor Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 163840/163840 K (Java/Others) To ...

  5. 背包问题(恰好背满 二维背包) 总结

    专题训练:点击打开链接  密码:JXFEACM 他人总结:点击打开链接  背包九讲:点击打开链接 其实核心记住: 背包是组合问题 填充性质 元素之间没关系 1. 01背包(右->左) 恰好装满( ...

  6. 动态规划:二维费用背包

    顾名思义,二维费用的背包中的每种物品有两种费用 设f[i][v][u]表示前i件物品付出两种代价分别为v和u时可获得的最大价值 那么我们很容易给出状态转移方程,加一维状态即可 f[i][v][u]=m ...

  7. python二维数组去重_np.unique()对一维和二维数组去重

    一维数组 对一维数组或列表,unique()函数去除其中重复元素,并按元素大小返回一个新的无重复元组或列表. import numpy as np A = [1, 2, 2, 5,3, 4, 3] a ...

  8. hdu 1081 To The Max(最大子段和的升级版,二维)

    http://acm.hdu.edu.cn/showproblem.php?pid=1081 一维最大字段和:dp [ i ] = max ( dp[ i-1 ]  , 0 ) + a [ i ] ; ...

  9. HDU 2159 FATE 动态规划二维费用的背包问题

    http://acm.hdu.edu.cn/showproblem.php?pid=2159 题意: 给出的n , m , k ,s 分别代表还需n经验升级.还有m耐久度.下面有k组数据.最多能杀s只 ...

最新文章

  1. 计算机连上网没网络连接,电脑显示本地网络连接但是宽带没连上怎么办? 爱问知识人...
  2. HDU1163 Eddy's digital Roots(解法二)【快速模幂+九余数定理】
  3. 图书管理系统之外键的增删改查
  4. NLP中对困惑度感到困惑?
  5. 【学习笔记】吴恩达机器学习 WEEK1
  6. 4.6模拟 宽度优先搜索
  7. linux下gdb常用的调试命令
  8. 你应该知道的 iTerm2 使用方法--MAC终端工具
  9. 五大常用算法(一) - 分治算法
  10. tongweb java_home_中间件 东方通tongweb的使用
  11. 程序员表白代码php,火热的程序员表白方式,调皮弹窗表白代码,赶紧拿去试试吧...
  12. PDF所有目录的页码全部变为“错误!未定义书签!”
  13. 微生物组学大数据:如何挖掘与利用?
  14. SNP位点上下游序列查找1.0 2020-9-27
  15. html图标 白块,桌面图标变成白块了?不用怕,1分钟就搞定!
  16. R语言绘图—多边树状图
  17. 多传感器融合标定方法汇总
  18. bh1750c语言程序,BH1750FVI数字光线强度传感器 51单片机源程序
  19. android+制作一个锁屏,手机个性锁屏怎么做?教你如何制作DIY手机锁屏图文教程...
  20. 抓包神器 Charles 使用教程详解

热门文章

  1. 163邮箱是网易邮箱吗?邮件怎么登录呢?
  2. unicloud开发微信小程序调试预览、体验版无法获取数据
  3. JSP页面上用下横线代替文本框效果的代码
  4. C语言俄罗斯方块 源码阅读
  5. 中国银联“刷脸付”与微信“青蛙”和支付宝“蜻蜓”有什么特点?
  6. 要进入SAP行业作为顾问,是通过培训机构好,还是找资料自学好,还是直接入行从实习起步好
  7. 基于FPGA的VGA视频弹球游戏
  8. 计算机弹球教程,电脑版三维弹球游戏玩法,请看官方指南
  9. 02.工厂模式--Factory
  10. Oracle函数篇 - lpad 函数