这题貌似是个权限题qwq,我是用离线题库+本地数据包测的

题目大意:

给你\(n\)个体积分别为\(w[i]\)的物品和容积\(m\),问你将每一件物品分别去掉之后,拼出\(1\)~\(m\)中每一个体积的方案数的个位数分别是多少,将答案矩阵输出。

输入样例:

3 2

1 1 2

输出样例:

11

11

21

考虑先做一次01背包,得到\(f\)数组,然后去掉不合法的方案。怎么去掉呢,首先枚举第\(i\)件物品,令\(g[x]\)表示不用第\(i\)件物品拼成体积为\(x\)的方案数,则\(g\)数组的转移如下:

1.\(x<w[i],g[x]=f[x]\)

2.\(x>=w[i],g[x]=f[x]-g[x-w[i]]\)(可以理解成先限制不选第\(i\)件物品,最后再选上,方案数就是总方案数减去不合法的方案数)

然后输出\(g\)数组就行了:

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define N 2000
  4. int n, m, w[N+5], f[N+5], g[N+5];
  5. int main()
  6. {
  7. //freopen("2287.in", "r", stdin);
  8. //freopen("2287.out", "w", stdout);
  9. scanf("%d%d", &n, &m);
  10. for(int i = 1; i <= n; ++i) scanf("%d", &w[i]), w[i] = w[i] > m ? m+1 : w[i];
  11. f[0] = 1;
  12. for(int i = 1; i <= n; ++i)
  13. for(int j = m; j >= w[i]; --j) f[j] = (f[j]+f[j-w[i]])%10;
  14. for(int i = 1; i <= n; ++i)
  15. {
  16. for(int j = 0; j < w[i]; ++j) g[j] = f[j];
  17. for(int j = w[i]; j <= m; ++j) g[j] = ((f[j]-g[j-w[i]])%10+10)%10;
  18. for(int j = 1; j <= m; ++j) printf("%d", g[j]);
  19. printf("\n");
  20. }
  21. return 0;
  22. }

BZOJ2287 消失之物的更多相关文章

  1. [bzoj2287]消失之物 题解(背包dp)

    2287: [POJ Challenge]消失之物 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1138  Solved: 654[Submit][ ...

  2. 【BZOJ2287】【POJ Challenge】消失之物 背包动规

    [BZOJ2287][POJ Challenge]消失之物 Description ftiasch 有 N 个物品, 体积分别是 W1, W2, ..., WN. 由于她的疏忽, 第 i 个物品丢失了 ...

  3. [bzoj2287][poj Challenge]消失之物_背包dp_容斥原理

    消失之物 bzoj-2287 Poj Challenge 题目大意:给定$n$个物品,第$i$个物品的权值为$W_i$.记$Count(x,i)$为第$i$个物品不允许使用的情况下拿到重量为$x$的方 ...

  4. bzoj2287【POJ Challenge】消失之物 缺一01背包

    bzoj2287[POJ Challenge]消失之物 缺一01背包 链接 bzoj 思路 分治solve(l,r,arr)表示缺少物品\([l,r]\)的dp数组arr. 然后solve(l,mid ...

  5. BZOJ2287: 【POJ Challenge】消失之物

    2287: [POJ Challenge]消失之物 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 254  Solved: 140[Submit][S ...

  6. 【BZOJ2287】消失之物 [分治][DP]

    消失之物 Time Limit: 10 Sec  Memory Limit: 128 MB[Submit][Status][Discuss] Description ftiasch 有 N 个物品, ...

  7. 背包DP【bzoj2287】: 【POJ Challenge】消失之物

    2287: [POJ Challenge]消失之物 Description ftiasch 有 N 个物品, 体积分别是 W1, W2, ..., WN. 由于她的疏忽, 第 i 个物品丢失了. &q ...

  8. bzoj2287【POJ Challenge】消失之物(退背包)

    2287: [POJ Challenge]消失之物 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 657  Solved: 382[Submit][S ...

  9. BZOJ 2287: 【POJ Challenge】消失之物( 背包dp )

    虽然A掉了但是时间感人啊.... f( x, k ) 表示使用前 x 种填满容量为 k 的背包的方案数, g( x , k ) 表示使用后 x 种填满容量为 k 的背包的方案数. 丢了第 i 个, 要 ...

随机推荐

  1. Vmware安装CentOs7+gitlab(二)

    在CentOS系统上安装所需的依赖:ssh,防火墙,postfix(用于邮件通知) ,wget,以下这些命令也会打开系统防火墙中的HTTP和SSH端口访问. 1.安装ssh和python sudo y ...

  2. ASP.NET Zero--WEB.HOST应用程序

    WEB.HOST应用程序 AspNet Zero解决方案包含一个额外的项目Web.Host,它将所有应用程序功能公开为API.因此,您可以从任何设备使用API​​.实际上,Web.Mvc项目也是这样做 ...

  3. linux 软链接的创建、删除和更新

    大家都知道,有的时候,我们为了省下空间,都会使用链接的方式来进行引用操作.同样的,在系统级别也有.在Windows系列中,我们称其为快捷方式,在Linux中我们称其为链接(基本上都差不多了,其中可能有 ...

  4. 【转】HTTP请求中的form data和request payload的区别

    jQuery的ajax方法和post方法分别发送请求,在后台Servlet进行处理时结果是不一样的,比如用$.ajax方法发送请求时(data参数是一个JSON.stringify()处理后的字符串, ...

  5. CentOS7.x安装MySQL5.7.25

    mysql 5.7下载地址 社区版下载地址:https://dev.mysql.com/downloads/mysql/ 可能会有变动 找到5.7版本, 注:源码安装需要用到下面的包,可以先忽略,我安 ...

  6. openstack第二章:glance

    第二篇glance— 镜像服务 一.glance介绍:              Glance是Openstack项目中负责镜像管理的模块,其功能包括虚拟机镜像的查找.注册和检索等. Glance提供 ...

  7. 移除 iview的Table组件固定两头后box-shadow阴影效果

    .ivu-table-fixed{ box-shadow:0 0 0 #fff; }

  8. java集合-HashSet源码解析

    HashSet 无序集合类 实现了Set接口 内部通过HashMap实现 // HashSet public class HashSet<E> extends AbstractSet< ...

  9. java基础-01基本概念

    java的特点 跨平台 所谓的平台,我们可以理解为操作系统. 大部分语言是不能跨平台的,比如c语言的程序在windows和linux上需要编写不同的代码. java程序是运行在JVM(Java Vir ...

  10. Echarts学习之路3(在react中使用)

    安装: npm install echarts --save demo import React, { Component } from 'react'; // 引入 ECharts 主模块 impo ...