【P1164 小A点菜】

2024-02-12 01:20
文章标签 点菜 p1164

本文主要是介绍【P1164 小A点菜】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

小A点菜

题目背景

uim 神犇拿到了 uoi 的 ra(镭牌)后,立刻拉着基友小 A 到了一家……餐馆,很低端的那种。

uim 指着墙上的价目表(太低级了没有菜单),说:“随便点”。

题目描述

不过 uim 由于买了一些书,口袋里只剩 M M M ( M ≤ 10000 ) (M \le 10000) (M10000)

餐馆虽低端,但是菜品种类不少,有 N N N ( N ≤ 100 ) (N \le 100) (N100),第 i i i 种卖 a i a_i ai ( a i ≤ 1000 ) (a_i \le 1000) (ai1000)。由于是很低端的餐馆,所以每种菜只有一份。

小 A 奉行“不把钱吃光不罢休”,所以他点单一定刚好把 uim 身上所有钱花完。他想知道有多少种点菜方法。

由于小 A 肚子太饿,所以最多只能等待 1 1 1 秒。

输入格式

第一行是两个数字,表示 N N N M M M

第二行起 N N N 个正数 a i a_i ai(可以有相同的数字,每个数字均在 1000 1000 1000 以内)。

输出格式

一个正整数,表示点菜方案数,保证答案的范围在 int 之内。

样例 #1

样例输入 #1

4 4
1 1 2 2

样例输出 #1

3

提示

2020.8.29,增添一组 hack 数据 by @yummy

#include <iostream>
using namespace std;
#define N 101int n,m,a[N],f[N][10001];//f数组保存方法总数量int main() {cin >>n>>m;//n代表菜的数量,m代表当前有多少钱for (int i = 1; i <= n; i++) cin >>a[i];//输入每种菜的价格//当前第i种物品恰好为j元钱,所以可以只买它自己。//这种情况其实包含在1中,但是由于f[i][0]=0,所以不会算入这种情况。//所以我们要把所有的f[i][0]更新成1,这样就可以计算上面所述的那种情况//i代表哪个菜,0可以理解为你的钱和当前菜品的价格一样,两者做了减法,如同j - a[i]for (int i = 0; i <= n; i++) f[i][0] = 1; // 初始化第一列,全部为1for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++) {//不买当前第i道菜品,这时候,也就是前i-1个物品凑成j的方案,即f[i][j]+=f[i-1][j]f[i][j] += f[i - 1][j];//买当前第i道菜品,这个时候前i-1个物品所需要的钱应该是j-a[i],//也就是说前i个物品中所有能凑出j-a[i]元的方案再加上当前这道菜品,//就可以变成前i个物品所需的钱为j的方案数。//即f[i][j]+=f[i-1][j-a[i]]if (j >= a[i]) f[i][j] += f[i - 1][j - a[i]]; cout << f[i][j] << " ";//输出当前i个物品凑成j元的方案数}cout << endl;}cout << f[n][m] << endl;return 0; // 程序执行成功,返回0
}

这个题目,我在做的时候,我发现这个题目重在策划,策划一个问题的解决思路,纯纯的逻辑思维,反而有点加大难度。

这篇关于【P1164 小A点菜】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/701312

相关文章

小程序餐饮点餐系统,扫码下单点菜,消费端+配送端+收银端+理端

目录 前言: 一、小程序功能有哪些 前端: 管理端:  二、实体店做小程序的好处 方便快捷的点餐和支付体验: 扩大店铺的曝光度和影响力: 优化顾客体验和服务质量: 降低成本和提高效率: 数据分析和精准营销: 便于管理和维护: 综上所述 前言: 助实体餐饮老板高效营销需求,有堂食,外卖,桌号,分销,骑手,连锁,外卖,平台打通。多功能部署账号。 一、小程序功能

ssm141餐厅点菜管理系统+vue

餐厅点菜管理系统的设计与实现 摘 要 网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就很关键。因此餐厅点菜信息的管理计算机化,系统化是必要的。设计开发餐厅点菜管理系统不仅会节约人力和管理成本,还会安全保存庞大的数据量,对于餐厅点菜信息的维护和检索也不需要花费很

Java订餐系统源码 springboot点菜系统源码

Java订餐系统源码 springboot点菜系统源码  源码下载地址:https://download.csdn.net/download/xiaohua1992/89341358 功能介绍: 前台登录:前台登录: ①首页:菜品信息推荐、菜品信息展示、查看更多 ②菜品信息:菜品分类、菜品名称查询、食材查询、菜品详情、下单提交 ③个人中心:可以查看自己的信息、我的订单、我的地址 后台登录:

C语言编程——餐馆点菜

题目如下: A、B和C三人去餐馆吃饭,他们每人要的不是火腿就是猪排  (1)如果A要的是火腿,那么B要的就是猪排  (2)A或C要的是火腿,但不会都要火腿  (3)B和C不会都要猪排 请问他们各要的什么? #include<stdio.h>void fun(char x,int y){char *str0="火腿";char *str1="猪排";if(y==0)printf(

OJ_点菜问题(背包问题)

题干 C++实现 #define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<vector>using namespace std;int main() {int c, n;scanf("%d%d", &c, &n);int p[101];int v[101];for (int i = 0; i < n; i++){scanf("

落谷P1146小A点菜01背包问题

题目背景 uim神犇拿到了uoi的ra(镭牌)后,立刻拉着基友小A到了一家……餐馆,很低端的那种。 uim指着墙上的价目表(太低级了没有菜单),说:“随便点”。 题目描述 不过uim由于买了一些辅(e)辅(ro)书,口袋里只剩 MMM 元 (M≤10000)(M \le 10000)(M≤10000) 。 餐馆虽低端,但是菜品种类不少,有 NNN 种 (N≤100

asp.net+VS2010实现点菜系统

Default.aspx 源 码如下: <%@ Page Title="主页" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"CodeBehind="Default.aspx.cs" Inherits="WebApplication5._Default" %><asp:Content ID="Header

基于SSM的餐厅点菜管理系统(有报告)。Javaee项目。ssm项目。

演示视频: 基于SSM的餐厅点菜管理系统(有报告)。Javaee项目。ssm项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构,通过Spring + SpringMvc + Mybatis +Jsp+Vue+layui+Elementui来实现。MySQL数据库作为系统数据储存平台,实现了基于B/S结构的Web系统。 报告截图:

pythonexcel可以做什么菜_Python操作Excel_随机点菜脚本

# coding=utf-8 import sys import xlrd import random #打开菜单excel workbook = xlrd.open_workbook('D:\\menu.xls') #计数器为0 counters = 0 #默认继续 YesOrNo = 'y' while 1: #判断计数器,最多能选择3次 if counters<3: #判断继续还是退出,默

点菜系统 设计

摘  要 随着网络信息的发展, 无线点菜系统的开发为酒店及大型餐馆带来了很大的方便和经济效益,使他们即使大大减少劳动力也可以轻轻松松地完成酒店的正常运行。 该课题通过考察现有的部分点菜系统解决方案,研究了一种无线点菜系统的软件设计。利用实验室已有的S3C2410开发板座位硬件载体,综合应用ZigBee,嵌入式linux,Qt开发等技术,以程序的通用性和易用性为方向,构造能够方便应用到各种PDA