如何在百度上建立网站,全球最受欢迎的网站排名,网站app怎么制作,最好用的磁力搜索神器[NOIP2012 普及组] 摆花
题目描述
小明的花店新开张#xff0c;为了吸引顾客#xff0c;他想在花店的门口摆上一排花#xff0c;共 m m m 盆。通过调查顾客的喜好#xff0c;小明列出了顾客最喜欢的 n n n 种花#xff0c;从 1 1 1 到 n n n 标号。为了在门口展出更…[NOIP2012 普及组] 摆花
题目描述
小明的花店新开张为了吸引顾客他想在花店的门口摆上一排花共 m m m 盆。通过调查顾客的喜好小明列出了顾客最喜欢的 n n n 种花从 1 1 1 到 n n n 标号。为了在门口展出更多种花规定第 i i i 种花不能超过 a i a_i ai 盆摆花时同一种花放在一起且不同种类的花需按标号的从小到大的顺序依次摆列。
试编程计算一共有多少种不同的摆花方案。
输入格式
第一行包含两个正整数 n n n 和 m m m中间用一个空格隔开。
第二行有 n n n 个整数每两个整数之间用一个空格隔开依次表示 a 1 , a 2 , ⋯ , a n a_1,a_2, \cdots ,a_n a1,a2,⋯,an。
输出格式
一个整数表示有多少种方案。注意因为方案数可能很多请输出方案数对 1 0 6 7 10^67 1067 取模的结果。
样例 #1
样例输入 #1
2 4
3 2样例输出 #1
2提示
【数据范围】
对于 20 % 20\% 20% 数据有 0 n ≤ 8 , 0 m ≤ 8 , 0 ≤ a i ≤ 8 0n \le 8,0m \le 8,0 \le a_i \le 8 0n≤8,0m≤8,0≤ai≤8。
对于 50 % 50\% 50% 数据有 0 n ≤ 20 , 0 m ≤ 20 , 0 ≤ a i ≤ 20 0n \le 20,0m \le 20,0 \le a_i \le 20 0n≤20,0m≤20,0≤ai≤20。
对于 100 % 100\% 100% 数据有 0 n ≤ 100 , 0 m ≤ 100 , 0 ≤ a i ≤ 100 0n \le 100,0m \le 100,0 \le a_i \le 100 0n≤100,0m≤100,0≤ai≤100。
NOIP 2012 普及组 第三题
#includebits/stdc.h
const int Max1000007;
using namespace std;
int n,m,a[150],f[150][150];
int main()
{cinnm;for(int i1;in;i)cina[i];for(int i0;in;i)f[i][0]1;for(int i1;in;i){for(int j1;jm;j){for(int k0;kmin(j,a[i]);k){f[i][j](f[i][j]f[i-1][j-k])%Max;}}}coutf[n][m];return 0;
}