ACM 350. 小吃店(背包变形)
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. 小吃店(背包变形)相关推荐
- codeforce Gym 101102A Coins (01背包变形)
01背包变形,注意dp过程的时候就需要取膜,否则会出错. 代码如下: #include<iostream> #include<cstdio> #include<cstri ...
- P1734 最大约数和 01背包变形
传送门 思路:01背包变形题.将i看成重量,i的因子看成价值即可.背包自然是s. /** * From: * Qingdao Agricultural University * Created by ...
- HDU 2546 饭卡 01背包变形
饭卡 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...
- HDU 3033 I love sneakers! (分组背包变形)
题目大意:xx去买鞋,有k种牌子,然后给出n双鞋,每双鞋有它属于的牌子.价格.收藏价值.xx认为他不差钱,要求每种鞋子买一双.但实际上他只有m毛钱,问能否买到符合xx要求的鞋,能找到的话输出最大的收藏 ...
- uestc oj 1218 Pick The Sticks (01背包变形)
题目链接:http://acm.uestc.edu.cn/#/problem/show/1218 给出n根木棒的长度和价值,最多可以装在一个长 l 的容器中,相邻木棒之间不允许重叠,且两边上的木棒,可 ...
- POJ 2392 Space Elevator(多重背包变形)
Q: 额外添加了最大高度限制, 需要根据 alt 对数据进行预处理么? A: 是的, 需要根据 alt 对数组排序 Description The cows are going to space! T ...
- hdu4044 依赖背包变形 好题!
由于不是求最大的可拦截的HP值,而是要将最小值最大化,那么就需要分配每个子树用的钱数以达到最小值最大化 第一步解决如何分配钱使得结点u的子树中用了j元钱后可以拦截的HP最大,这就是变形的分组(依赖)背 ...
- 2022-9-2何以包邮(01背包变形)(c/c++实测满分)
总结: 此题是背包问题的变形,物品的价值和重量有所改变,背包的容量限制有所改变,但核心动态规划求法没有改变.只需要在背包问题的解法上根据题意对物品表示,答案输出进行改变即可. 背包算法 ...
- HDU 3466 01背包变形
给出物品数量N和总钱数M 对于N个物品.每一个物品有其花费p[i], 特殊值q[i],价值v[i] q[i] 表示当手中剩余的钱数大于q[i]时,才干够买这个物品 首先对N个物品进行 q-p的排序,表 ...
最新文章
- 如何使用NAnt 自动打包DNN模块 之二
- Python函数作为参数传递给函数
- 一天搞定CSS:背景background--03
- linux拷贝文件夹怎么删除,linux文件及文件夹拷贝移动删除
- Diango博客--12.开发 Django 博客文章阅读量统计功能
- dhcp服务器没有响应怎么解决,dhcp服务器没有响应
- cmd查看开放的端口
- adaboost代码实现
- Mac电脑Docker拉取Mysql报错?no matching manifest for linux/arm64/v8 in the manifest list entries
- (JS基础)操作表单
- C51单片机,点亮小灯的入门级教程
- 基于C语言实现的遗传算法系统
- linux系统pyodbc安装与使用教程
- git查看历史记录及修改内容
- tensorflow graphics详解
- ubuntu清空回收站命令
- php模板修改教程,商业模板修改高级教程
- OS学习笔记-11(清华大学慕课)进程与线程
- 论汽车车机快速启动与开机动画、倒车影像三者关系
- php网站页面显示源码,用PHP显示网站的源代码