@[张宇潇](/user/431506) 手机上不方便操作给你一下我的代码,下有注解
```cpp
#include<bits/stdc++.h>
using namespace std;
int dp[110][110],n,m,s[110];
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>s[i];
dp[i][0]=1;
}
for(int j=1;j<=s[1];j++)
{
dp[1][j]=1;
}
for(int i=2;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
int k;
if(0<j-s[i]) k = j-s[i];
else k = 0;
for(;k<=j;k++)
{
dp[i][j]+=dp[i-1][k];
dp[i][j]%=1000007;
}
}
}
cout<<dp[n][m];
//for(int i=0;i<=4;i++)
//cout<<endl<<dp[2][i];
return 0;
}
/*dp[i][j]
dp[1][0]=1
dp[1][1]=1
dp[1][2]=1
dp[1][3]=1
dp[2][0]=1
dp[2][1]=dp[1][0]+dp[1][1]=2
dp[2][2]=dp[1][0]+dp[1][1]+dp[1][2]=3
dp[2][3]=dp[1][1]+dp[1][2]+dp[1][3]=3
dp[2][4]=dp[1][2]+dp[1][3]=2
dp[i][j]=dp[i-1][max(0,j-a[i]])+...+dp[i-1][j] */
```
by hahazhou @ 2021-10-06 10:11:38
@[hahazhou](/user/331216) 谢谢,已关注
by 张宇潇 @ 2021-10-06 10:14:29
@[张宇潇](/user/431506) 在循环里加没有取模?
by 我是人999 @ 2021-10-06 10:14:58
@[张宇潇](/user/431506) 不应该是`dp[i-1][j-k]`吗?
by Carnival @ 2021-10-06 10:25:26
谢谢,已关注
by 张宇潇 @ 2021-10-06 11:05:04