P1077 摆花
模板题。对于没一盆花遍历从n到1的每一个花的总数,再对摆放该花的盆数k进行遍历。
状态转移方程为cnt[j]+=cnt[j-k]
#include<stdio.h>
#include<stdlib.h>
#define size 150
int a[size], cnt[size];
void find(int n, int m) {
int i, j, k;
cnt[0] = 1;
for (i = 0; i < n; i++) {
for (j = m; j >= 1; j--) {
for (k = 1; k <= j && k <= a[i]; k++) {
cnt[j] += cnt[j - k];
cnt[j] %= 1000007;
}
}
}
}
int main() {
int n, m, i, j, k;
scanf("%d%d", &n, &m);
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
find(n, m);
printf("%d", cnt[m]);
}