【ICPC-283】hdu 2126 Buy the souvenirs(二维0/1背包)
点击打开链接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背包)相关推荐
- hrbust 1611 最强兵力【二维费用完全背包+分类处理】
最强兵力 Time Limit: 2000 MS Memory Limit: 65535 K Total Submit: 33(17 users) Total Accepted: 18(16 user ...
- HDU - 5517 Triple(三维偏序-二维树状数组/CDQ分治)
题目链接:点击查看 题目大意:给出 n 个二元对 ( a , b ) 和 m 个三元对 ( c , d , e ),对于所有 b == e 的二元对和三元对,可以通过某种运算形成一个新的三元对 ( a ...
- HDU 2159 FATE (DP 二维费用背包)
题目链接 题意 : 中文题不详述. 思路 : 二维背包,dp[i][h]表示当前忍耐值为i的情况下,杀了h个怪得到的最大经验值,状态转移方程: dp[i][h] = max(dp[i][h],dp[i ...
- 【HDU - 6514】Monitor(二维差分,前缀和)
题干: Monitor Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 163840/163840 K (Java/Others) To ...
- 背包问题(恰好背满 二维背包) 总结
专题训练:点击打开链接 密码:JXFEACM 他人总结:点击打开链接 背包九讲:点击打开链接 其实核心记住: 背包是组合问题 填充性质 元素之间没关系 1. 01背包(右->左) 恰好装满( ...
- 动态规划:二维费用背包
顾名思义,二维费用的背包中的每种物品有两种费用 设f[i][v][u]表示前i件物品付出两种代价分别为v和u时可获得的最大价值 那么我们很容易给出状态转移方程,加一维状态即可 f[i][v][u]=m ...
- python二维数组去重_np.unique()对一维和二维数组去重
一维数组 对一维数组或列表,unique()函数去除其中重复元素,并按元素大小返回一个新的无重复元组或列表. import numpy as np A = [1, 2, 2, 5,3, 4, 3] a ...
- hdu 1081 To The Max(最大子段和的升级版,二维)
http://acm.hdu.edu.cn/showproblem.php?pid=1081 一维最大字段和:dp [ i ] = max ( dp[ i-1 ] , 0 ) + a [ i ] ; ...
- HDU 2159 FATE 动态规划二维费用的背包问题
http://acm.hdu.edu.cn/showproblem.php?pid=2159 题意: 给出的n , m , k ,s 分别代表还需n经验升级.还有m耐久度.下面有k组数据.最多能杀s只 ...
最新文章
- 计算机连上网没网络连接,电脑显示本地网络连接但是宽带没连上怎么办? 爱问知识人...
- HDU1163 Eddy's digital Roots(解法二)【快速模幂+九余数定理】
- 图书管理系统之外键的增删改查
- NLP中对困惑度感到困惑?
- 【学习笔记】吴恩达机器学习 WEEK1
- 4.6模拟 宽度优先搜索
- linux下gdb常用的调试命令
- 你应该知道的 iTerm2 使用方法--MAC终端工具
- 五大常用算法(一) - 分治算法
- tongweb java_home_中间件 东方通tongweb的使用
- 程序员表白代码php,火热的程序员表白方式,调皮弹窗表白代码,赶紧拿去试试吧...
- PDF所有目录的页码全部变为“错误!未定义书签!”
- 微生物组学大数据:如何挖掘与利用?
- SNP位点上下游序列查找1.0 2020-9-27
- html图标 白块,桌面图标变成白块了?不用怕,1分钟就搞定!
- R语言绘图—多边树状图
- 多传感器融合标定方法汇总
- bh1750c语言程序,BH1750FVI数字光线强度传感器 51单片机源程序
- android+制作一个锁屏,手机个性锁屏怎么做?教你如何制作DIY手机锁屏图文教程...
- 抓包神器 Charles 使用教程详解
热门文章
- 163邮箱是网易邮箱吗?邮件怎么登录呢?
- unicloud开发微信小程序调试预览、体验版无法获取数据
- JSP页面上用下横线代替文本框效果的代码
- C语言俄罗斯方块 源码阅读
- 中国银联“刷脸付”与微信“青蛙”和支付宝“蜻蜓”有什么特点?
- 要进入SAP行业作为顾问,是通过培训机构好,还是找资料自学好,还是直接入行从实习起步好
- 基于FPGA的VGA视频弹球游戏
- 计算机弹球教程,电脑版三维弹球游戏玩法,请看官方指南
- 02.工厂模式--Factory
- Oracle函数篇 - lpad 函数