350. 小吃店

★☆   输入文件: food.in   输出文件: food.out    简单对比
时间限制:1 s   内存限制:256 MB

小吃店

【背景】

    小白终于决定了去小吃店的方案。来到小吃店的小白被琳琅满目的小吃看得直流口水。他对自己说:我一定要把钱全部用来买小吃!!但是小白最近在减肥,所以他不希望吃太多,他给自己又定了一个量,他希望正好达到这个量,不能多也不能少。假设每种最多买一份。

【问题描述】

    给出n个数对(ai,bi),每个数对都满足ai>=bi。要求在这n个数对中选出k对,使得ai1+ai2+ai3+……+aik=m且bi1+bi2+bi3+……+bik=w,k为任意数,有几种方案。

【输入文件】

第一行有三个整数n,m,w。
接下来n行每行二个整数ai,bi。

【输出文件】

方案总数。

【输入输出样例】

food.in
4 3 2
2 1
3 2
1 1
2 1
food.out
3
样例解释
{1,3}、{2}和{3,4} (这里的数字表示第几对)

【数据范围】

对于 30%数据, 0<=n<=10; 0<=m,w<=100
对于100%数据, 0<=n<=50; 0<=m,w<=2,500
对于 100%数据,0<=ai,bi<=100
保证运算和输出不会超过maxlongint
#include <iostream>
#include <cstdio>using namespace std;#define MAX_N 2501
#define INF -999999int n,m,w;
int dp[MAX_N][MAX_N];
int a[MAX_N],b[MAX_N];int main()
{freopen("food.in","r",stdin);freopen("food.out","w",stdout);scanf("%d%d%d",&n,&m,&w);for(int i=0;i<n;i++) scanf("%d%d",&a[i],&b[i]);for(int i=0;i<=m;i++)dp[0][0]=1;for(int i=0;i<n;i++){for(int j=m;j>=a[i];j--){for(int k=w;k>=b[i];k--){dp[j][k]+=dp[j-a[i]][k-b[i]];}}}printf("%d\n",dp[m][w]);return 0;
}

ACM 350. 小吃店(背包变形)相关推荐

  1. codeforce Gym 101102A Coins (01背包变形)

    01背包变形,注意dp过程的时候就需要取膜,否则会出错. 代码如下: #include<iostream> #include<cstdio> #include<cstri ...

  2. P1734 最大约数和 01背包变形

    传送门 思路:01背包变形题.将i看成重量,i的因子看成价值即可.背包自然是s. /** * From: * Qingdao Agricultural University * Created by ...

  3. HDU 2546 饭卡 01背包变形

    饭卡 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  4. HDU 3033 I love sneakers! (分组背包变形)

    题目大意:xx去买鞋,有k种牌子,然后给出n双鞋,每双鞋有它属于的牌子.价格.收藏价值.xx认为他不差钱,要求每种鞋子买一双.但实际上他只有m毛钱,问能否买到符合xx要求的鞋,能找到的话输出最大的收藏 ...

  5. uestc oj 1218 Pick The Sticks (01背包变形)

    题目链接:http://acm.uestc.edu.cn/#/problem/show/1218 给出n根木棒的长度和价值,最多可以装在一个长 l 的容器中,相邻木棒之间不允许重叠,且两边上的木棒,可 ...

  6. POJ 2392 Space Elevator(多重背包变形)

    Q: 额外添加了最大高度限制, 需要根据 alt 对数据进行预处理么? A: 是的, 需要根据 alt 对数组排序 Description The cows are going to space! T ...

  7. hdu4044 依赖背包变形 好题!

    由于不是求最大的可拦截的HP值,而是要将最小值最大化,那么就需要分配每个子树用的钱数以达到最小值最大化 第一步解决如何分配钱使得结点u的子树中用了j元钱后可以拦截的HP最大,这就是变形的分组(依赖)背 ...

  8. 2022-9-2何以包邮(01背包变形)(c/c++实测满分)

    总结:         此题是背包问题的变形,物品的价值和重量有所改变,背包的容量限制有所改变,但核心动态规划求法没有改变.只需要在背包问题的解法上根据题意对物品表示,答案输出进行改变即可. 背包算法 ...

  9. HDU 3466 01背包变形

    给出物品数量N和总钱数M 对于N个物品.每一个物品有其花费p[i], 特殊值q[i],价值v[i] q[i] 表示当手中剩余的钱数大于q[i]时,才干够买这个物品 首先对N个物品进行 q-p的排序,表 ...

最新文章

  1. 如何使用NAnt 自动打包DNN模块 之二
  2. Python函数作为参数传递给函数
  3. 一天搞定CSS:背景background--03
  4. linux拷贝文件夹怎么删除,linux文件及文件夹拷贝移动删除
  5. Diango博客--12.开发 Django 博客文章阅读量统计功能
  6. dhcp服务器没有响应怎么解决,dhcp服务器没有响应
  7. cmd查看开放的端口
  8. adaboost代码实现
  9. Mac电脑Docker拉取Mysql报错?no matching manifest for linux/arm64/v8 in the manifest list entries
  10. (JS基础)操作表单
  11. C51单片机,点亮小灯的入门级教程
  12. 基于C语言实现的遗传算法系统
  13. linux系统pyodbc安装与使用教程
  14. git查看历史记录及修改内容
  15. tensorflow graphics详解
  16. ubuntu清空回收站命令
  17. php模板修改教程,商业模板修改高级教程
  18. OS学习笔记-11(清华大学慕课)进程与线程
  19. 论汽车车机快速启动与开机动画、倒车影像三者关系
  20. php网站页面显示源码,用PHP显示网站的源代码

热门文章

  1. Linux操作系统实验2
  2. androidmanifest.xml文件
  3. 打电话android代码,android 拨打电话例子源码(亲测可用)
  4. 【图文详解:索引极简教程】极致 SQL 查询性能优化原理
  5. C语言I——作业06
  6. Java中使用递归计算1~N阶乘的值
  7. 诚风老师-直销十三步走
  8. springboot-websocket作为客户端
  9. ldap端口超时设置_ldap安装配置
  10. 爬虫实战:百度失信人名单