P1164小A点菜
Posted lcez56jsy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P1164小A点菜相关的知识,希望对你有一定的参考价值。
这是一个典型的背包方案问题,设f[j]为当前价值为j的方案数,则f[j]=f[j]+f[j-a[i]],即当前方案数为选这个的方案数和不选这个东西的方案数,代码如下
#include<iostream> #include<cstdio> #include<cmath> using namespace std; int n,t=1,a[101],m,ans,x,y,f[5000001]; int flag[1000001]; int main() {cin>>n>>m; for(int i=1;i<=n;i++) cin>>a[i]; f[0]=1; for(int i=1;i<=n;i++) { for(int j=m;j>=a[i];j--) {f[j]+=f[j-a[i]]; } } cout<<f[m]; }
其余背包方案数问题:
以上是关于P1164小A点菜的主要内容,如果未能解决你的问题,请参考以下文章