2287: 【POJ Challenge】消失之物

Time Limit: 10 Sec  Memory Limit: 128 MB
Submit: 986  Solved: 572
[Submit][Status][Discuss]

Description

ftiasch 有 N 个物品, 体积分别是 W1, W2, ..., WN。 由于她的疏忽, 第 i 个物品丢失了。 “要使用剩下的 N - 1 物品装满容积为 x 的背包,有几种方法呢?” -- 这是经典的问题了。她把答案记为 Count(i, x) ,想要得到所有1 <= i <= N, 1 <= x <= M的 Count(i, x) 表格。

Input

第1行:两个整数 N (1 ≤ N ≤ 2 × 103) 和 M (1 ≤ M ≤ 2 × 103),物品的数量和最大的容积。

第2行: N 个整数 W1, W2, ..., WN, 物品的体积。

Output

一个 N × M 的矩阵, Count(i, x)的末位数字。

Sample Input

3 2
1 1 2

Sample Output

11
11
21

HINT

如果物品3丢失的话,只有一种方法装满容量是2的背包,即选择物品1和物品2。

题解

预处理出01背包的f[i]数组代表装满i空间的方案数。

然后用g[i][j]代表除去i物品后装j空间的方案数。

除去i物品后装j空间的方案数=装满j空间的方案数-一定选i物品后装j空间的方案数

所以方程为    g[i][j]=f[j]-g[i][j-a[i]];

 #include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
const int N=;
int n,m,f[N],a[N],g[N][N];
int main(){
scanf("%d%d",&n,&m);
f[]=;
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
for(int j=m;j>=a[i];j--){
f[j]+=f[j-a[i]];
f[j]%=;
}
}
for(int i=;i<=n;i++){
g[i][]=;
for(int j=;j<a[i];j++){
g[i][j]=f[j];
}
for(int j=a[i];j<=m;j++){
g[i][j]=f[j]-g[i][j-a[i]];
g[i][j]=(g[i][j]%+)%;
}
}
for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
printf("%d",g[i][j]);
}
printf("\n");
}
return ;
}

最新文章

  1. CSS3设置多张背景图片
  2. Spark中文指南(入门篇)-Spark编程模型(一)
  3. 第二十九课:javascript异步处理
  4. nginx不支持pathinfo 导致thinkphp出错解决办法
  5. shell脚本实例(2)
  6. [一]初识Poi
  7. Codevs 1010 过河卒 2002年NOIP全国联赛普及组
  8. 解决Mac上Android开发时adb连接不到手机问题
  9. 按钮制作技巧(css精灵效果)-高级版
  10. poj 2653 计算几何
  11. 从Rational Rose 到IBM Rational Software Architect和IBM Rational Rhapsody
  12. Windows7 下安装 tersorflow
  13. 2017-10-31 中文代码示例教程之Vuejs入门&amp;后续计划
  14. CRC 校验原理及步骤
  15. js计时器 setInterval与clearInterval
  16. 记录weiye项目上线遇到的一些问题
  17. .py文件 改成默认用idle打开
  18. 给Ubuntu软件升级命令
  19. System.Runtime.InteropServices.COMException: 检索 COM 类工厂中 CLSID 为 {0002E510-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80040154
  20. python 基础笔记

热门文章

  1. ZBrush为电影制作设计独特的生物概念
  2. 开源Android容器化框架Atlas开发者指南
  3. 路飞学城Python-Day19(Py_Notes)
  4. Pyhton学习——Day11
  5. iOS开发——自动填充短信验证码
  6. IOS - 网络指示器
  7. Shell(四)函数
  8. [luogu] P3202 [HNOI2009]通往城堡之路(贪心)
  9. [luogu] P2569 [SCOI2010]股票交易 (单调队列优化)
  10. 简述Vue的响应式原理