Money Systems
2024-09-06 17:27:06
分析:来看看背包九讲里面的一段话:
对于一个给定了背包容量、物品费用、物品间相互关系(分组、依赖等) 的背包问题,除了再给定每个物品的价值后求可得到的最大价值外,还可以得 到装满背包或将背包装至某一指定容量的方案总数。对于这类改变问法的问题,一般只需将状态转移方程中的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;
}
最新文章
- [NHibernate]持久化类(Persistent Classes)
- 【FTP】C# System.Net.FtpClient库连接ftp服务器(上传文件)
- H5页面性能优化
- Linux下*.tar.gz文件解压缩命令
- C++关键字 explicit
- 更改SharePoint 2010 顶部导航为下拉菜单样式
- 剑指Offer:面试题6——重建二叉树(java实现)
- Aircrack-ng官方文档翻译[中英对照]---Airdecap-ng
- JQuery中如何click中传递参数
- linux下ifconfig, DNS以及route配置
- Git flow 的流程
- oracle运行速度与效率高的秘密
- 加密:HashUtils,RSAUtil,AESUtils
- 【做题】51NOD1518 稳定多米诺覆盖——容斥&;dp
- redis入门概述
- [转帖] Windows 与linux的栈大小问题
- 在Windows中监视IO性能
- Ajax请求数据的两种方式
- Linux进程管理子系统
- 关于将vector以及string传递给较老的api的问题