码迷,mamicode.com
首页 > 其他好文 > 详细

P1164小A点菜

时间:2019-03-10 21:05:16      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:pac   mat   stream   bsp   include   org   --   问题   get   

传送

这是一个典型的背包方案问题,设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];
}

 其余背包方案数问题:

 P2639Bessie的体重

P1049装箱问题

P1164小A点菜

标签:pac   mat   stream   bsp   include   org   --   问题   get   

原文地址:https://www.cnblogs.com/lcez56jsy/p/10506838.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!