题目链接:1077摆花
普通动态规划,f[i][j]代表前i个编号j盆花共有多少种摆放方案,是不是细节上出了问题,蒟蒻不解
代码如下:
#include<iostream>
using namespace std;
int n,m;
int a[105];
long long f[105][105];
long long ans;
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>a[i];
f[0][0]=1;
for(int i=1;i<=n;i++)
{
for(int j=0;j<=m;j++)
{
for(int k=0;k<=a[i];k++)
{
if(j-k>=0)f[i][j]+=f[i-1][j-k];
}
}
}
ans=f[n][m];
ans%=1000007;
cout<<ans<<endl;
return 0;
}