洛谷——P1164 小A点菜

 2023-09-05 阅读 409 评论 0

摘要:P1164 小A点菜 题目背景 uim神犇拿到了uoi的ra(镭牌)后,立刻拉着基友小A到了一家……餐馆,很低端的那种。 uim指着墙上的价目表(太低级了没有菜单),说:“随便点”。 题目描述 不过uim由于买了一些辅(e)

P1164 小A点菜

题目背景

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<cstdio>
#include<iostream>
#define N 900000
using namespace std;
int n,m,a[N],f[N];
int read()
{int x=0,f=1; char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') f=-1; ch=getchar();}while(ch<='9'&&ch>='0'){x=x*10+ch-'0'; ch=getchar();}return x*f;
}
int main()
{n=read(),m=read();for(int i=1;i<=n;i++)a[i]=read();f[0]=1;for(int i=1;i<=n;i++)for(int j=m;j>=a[i];j--)f[j]+=f[j-a[i]];printf("%d",f[m]);return 0;
}
 

 

 

转载于:https://www.cnblogs.com/z360/p/7207010.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/547.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息