题目传送门
解题思路:
用f[i][j]表示摆到第i种花,一共摆了j盆的方案数.
AC代码:
1 #include<cstdio> 2 #include<iostream> 3 4 using namespace std; 5 6 int n,m,o; 7 int f[101][101]; 8 int main() 9 { 10 scanf("%d%d",&n,&m); 11 for(int i = 0;i <= n; i++) 12 f[i][0] = 1; 13 for(int q = 1;q <= n; q++) { 14 scanf("%d",&o); 15 for(int i = 0;i <= o; i++) 16 for(int j = 0;j <= m - i; j++) 17 if(i | j != 0) 18 f[q][j+i] = (f[q][j+i] + f[q-1][j]) % 1000007; 19 } 20 printf("%d",f[n][m]); 21 return 0; 22 }
//NOIP 2012 普及组 T3