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; }