#includeusingnamespacestd;constlonglongN=1e5+9;intdp[1000][1000];inta[N];intmain(){ longlongm,n,ans=0; cin>>n>>m; for(inti=1;i>a[i]; for(inti=0;i=a[i]){ dp[i][j]+=dp[i-1][j-a[i]]; } dp[i][j]+=dp[i-1][j]; } } cout\(line:11\)为所有花费0元的商品的方法赋值为1;因为花费0元的方法,有且仅有一种,那就是都不买\(line:13-14\)两次循环,外循环为商品的数目