链接

分析:来看看背包九讲里面的一段话:

对于一个给定了背包容量、物品费用、物品间相互关系(分组、依赖等) 的背包问题,除了再给定每个物品的价值后求可得到的最大价值外,还可以得 到装满背包或将背包装至某一指定容量的方案总数。对于这类改变问法的问题,一般只需将状态转移方程中的max改成sum即可。例如若每件物品均是完全背包中的物品,转移方程即为:

dp[i][j]=dp[i-1][j]+dp[i-1][j-v[i]],因为必须是由这两个状态转换过来的,边界是dp[0][0]=1,所以这道题的代码如下

 #include "iostream"
#include "cstdio"
#include "cstring"
#include "string"
using namespace std;
const int maxn=1e6+;
int n,V;
int a[];
long long dp[maxn];
int main()
{
cin>>n>>V;
for(int i=;i<=n;i++)
cin>>a[i];
dp[]=;
for(int i=;i<=n;i++)
for(int j=a[i];j<=V;j++)
dp[j]=dp[j]+dp[j-a[i]];
cout<<dp[V]<<endl;
}

最新文章

  1. [NHibernate]持久化类(Persistent Classes)
  2. 【FTP】C# System.Net.FtpClient库连接ftp服务器(上传文件)
  3. H5页面性能优化
  4. Linux下*.tar.gz文件解压缩命令
  5. C++关键字 explicit
  6. 更改SharePoint 2010 顶部导航为下拉菜单样式
  7. 剑指Offer:面试题6——重建二叉树(java实现)
  8. Aircrack-ng官方文档翻译[中英对照]---Airdecap-ng
  9. JQuery中如何click中传递参数
  10. linux下ifconfig, DNS以及route配置
  11. Git flow 的流程
  12. oracle运行速度与效率高的秘密
  13. 加密:HashUtils,RSAUtil,AESUtils
  14. 【做题】51NOD1518 稳定多米诺覆盖——容斥&amp;dp
  15. redis入门概述
  16. [转帖] Windows 与linux的栈大小问题
  17. 在Windows中监视IO性能
  18. Ajax请求数据的两种方式
  19. Linux进程管理子系统
  20. 关于将vector以及string传递给较老的api的问题

热门文章

  1. 字符串各个字符ASCII值加5
  2. FullPage.js 活动单页 - 全屏滚动插件
  3. hdu 1068 Girls and Boys 二分图的最大匹配
  4. C# WinForm退出方法
  5. wait() 区别 sleep()
  6. android菜鸟学习笔记9----Activity(二)
  7. Tomcat Server 配置
  8. iOS视频直播用到的协议
  9. new 和 make 均是用于分配内存
  10. ME11创建信息记录 Function