动态规划——小A点菜(洛谷 P1164)
题目选自洛谷P1164
这是一道简单的动规题,定义f[i][j]为用前i道菜用光j元钱的办法总数,其状态转移方程如下:
(1)if(j==第i道菜的价格)f[i][j]=f[i-1][j]+1;
(2)if(j>第i道菜的价格) f[i][j]=f[i-1][j]+f[i-1][j-第i道菜的价格];
(3)if(j<第i道菜的价格) f[i][j]=f[i-1][j];
说的简单一些,这三个方程,每一个都是在吃与不吃之间抉择。若钱充足,办法总数就等于吃这道菜的办法数与不吃这道菜的办法数之和;若不充足,办法总数就只能承袭吃前i-1道菜的办法总数。依次递推,在最后,我们只要输出f[n][m]的值即可。
题目背景
uim神犇拿到了uoi的ra(镭牌)后,立刻拉着基友小A到了一家……餐馆,很低端的那种。
uim指着墙上的价目表(太低级了没有菜单),说:“随便点”。
题目描述
不过uim由于买了一些辅(e)辅(ro)书,口袋里只剩M元(M<=10000)。
餐馆虽低端,但是菜品种类不少,有N种(N<=100),第i种卖ai元(ai<=1000)。由于是很低端的餐馆,所以每种菜只有一份。
小A奉行“不把钱吃光不罢休”,所以他点单一定刚好吧uim身上所有钱花完。他想知道有多少种点菜方法。
由于小A肚子太饿,所以最多只能等待1秒。
输入输出格式
输入格式:
第一行是两个数字,表示N和M。
第二行起N个正数ai(可以有相同的数字,每个数字均在1000以内)。
输出格式:
一个正整数,表示点菜方案数。
输入输出样例
输入样例 1
4 4
1 1 2 2
输出样例 1
3
解题代码:
#include<stdio.h>
#include<iostream>
#include<string.h>
#include<algorithm>using namespace std;
int n,m;
int val[101],dp[101][10010];
int main(){cin>>n>>m;for(int i=1;i<=n;i++)cin>>val[i];for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){if(j == val[i]) dp[i][j] = dp[i-1][j] + 1; //直接放if(j > val[i]) dp[i][j] = dp[i-1][j] + dp[i-1][j-val[i]];//可以选择放还是不放if(j < val[i]) dp[i][j] = dp[i-1][j]; //放不下}cout<<dp[n][m];return 0;
}
动态规划——小A点菜(洛谷 P1164)相关推荐
- P1164 小A点菜 洛谷
P1164 小A点菜 洛谷 题目背景 uim神犇拿到了uoi的ra(镭牌)后,立刻拉着基友小A到了一家--餐馆,很低端的那种. uim指着墙上的价目表(太低级了没有菜单),说:"随便点&qu ...
- 【01背包求方案数模板】洛谷 P1164 小A点菜
洛谷 P1164 小A点菜 https://www.luogu.org/problemnew/show/P1164 题目背景 uim神犇拿到了uoi的ra(镭牌)后,立刻拉着基友小A到了一家--餐馆, ...
- 洛谷——P1164 小A点菜
P1164 小A点菜 题目背景 uim神犇拿到了uoi的ra(镭牌)后,立刻拉着基友小A到了一家--餐馆,很低端的那种. uim指着墙上的价目表(太低级了没有菜单),说:"随便点" ...
- 动态规划——最大子段和(洛谷 P1115)
题目选择洛谷P1115 经典的动态规划基础题目,最大连续子序列和 状态转移方程为: dp[i] = max{A[i],dp[i-1]+A[i]} 题目描述 给出一个长度为 n 的序列 a,选出其中连续 ...
- 小A点菜(洛谷-P1164)
题目描述 uim神犇拿到了uoi的ra(镭牌)后,立刻拉着基友小A到了一家--餐馆,很低端的那种. uim指着墙上的价目表(太低级了没有菜单),说:"随便点". 不过uim由于买了 ...
- 洛谷 P1164:小A点菜(DP/DFS)
题目背景 uim神犇拿到了uoi的ra(镭牌)后,立刻拉着基友小A到了一家--餐馆,很低端的那种. uim指着墙上的价目表(太低级了没有菜单),说:"随便点". 题目描述 不过ui ...
- (Java实现)洛谷 P1164 小A点菜
题目背景 uim神犇拿到了uoi的ra(镭牌)后,立刻拉着基友小A到了一家--餐馆,很低端的那种. uim指着墙上的价目表(太低级了没有菜单),说:"随便点". 题目描述 不过ui ...
- 洛谷P1164 小A点菜
题目背景 uim 神犇拿到了 uoi 的 ra(镭牌)后,立刻拉着基友小 A 到了一家--餐馆,很低端的那种. uim 指着墙上的价目表(太低级了没有菜单),说:"随便点". 题目 ...
- 小A点菜(洛谷P1164题题解,Java语言描述)
题目要求 题目链接 分析 用DPDPDP做是必然的,讲讲二维的吧: f[i][j]f[i][j]f[i][j]:用前iii道菜用光jjj元钱的可能组合数 剩下的钱等于第iii道菜的价格时,f[i][j ...
最新文章
- [2014百度之星资格赛]
- AndroidManifest.xml文件详解(activity)(三)四种工作模式
- 支持高并发的IIS Web服务器常用设置
- Qt Designer 编辑Tab顺序
- 虚函数表 vtable
- CentOS 6.X启动流程
- 想尝试搭建图像识别系统?这里有一份TensorFlow速成教程
- Maven 插件开发
- 全国计算机信息大赛noi,全国青少年信息学竞赛NOI系列赛事汇总
- E: 无法定位软件包
- 快速傅里叶变换(MATLAB实现)
- 计算机英语rom是什么意思,rom是什么意思
- 市场部商业计划PPT模板
- 当前时间距离某个时间的天数计算_Excel如何计算当前距离某一天的时间?,原来是这样的...
- 谷歌手机地图中文java_谷歌地图开发(1)使用MapView显示地图
- 【MATLAB】一个宝藏博主公开的代码,给它加个速——水晶爱心模块
- windows用python读取文件open()函数
- 7zip核心算法LZMA源码分析心得
- 【Spring】AOP(二)自定义来实现AOP
- python,unicode转换中文,中文转换unicode
热门文章
- Word2010使用技巧之四:页眉的另类使用
- python断言失败_python异常处理、断言
- switch中case后可以是表达式吗_Java中的 quot;如果,那么quot; 怎么表达?
- python raise语句_Python异常处理,告别xxxxError!
- openresty 操作memcached例子
- Bash vs. Python:您应该使用哪种语言?
- 热门编程语言,热门开源项目,MS-DOS,Python,Calcurse等
- 云中数据_简化云中的应用程序开发
- linux急救模式_抢救Linux! Windows XP支持今天终止
- ES6(ECMAScript2015)/01/ES6简介