P1164 小A点菜
d[i][j] : 前i个菜刚好花费j元的方案数
int d[200][10008];
int main()
{
int n,m;
cin>>n>>m;
int v[200];
for(int i=1;i<=n;i++) cin>>v[i];
d[1][0]=1;
d[1][v[1]]=1;
for(int i=2;i<=n;i++)
{
for(int j=0;j<=m;j++)
{
if(j>=v[i]) d[i][j]=(d[i-1][j-v[i]]+d[i-1][j]);
else d[i][j]=d[i-1][j];
}
}
cout<<d[n][m]<<endl;
return 0;
}