题干:

ycb的ACM进阶之路

Description

  ycb是个天资聪颖的孩子,他的梦想是成为世界上最伟大的ACMer。为此,他想拜附近最有威望的dalao为师。dalao为了判断他的资质,给他出了一个难题。dalao把他带到一个到处都是题的oj里对他说:“孩子,这个oj里有一些不同的题,做每一道题都需要一些时间,每一题也有它自身的rp(人品值)。我会给你一段时间,在这段时间里,你可以做一些题。如果你是一个聪明的孩子,你应该可以让做题的总rp最大。”   如果你是ycb,你能完成这个任务吗?

Input

输入文件的第一行是一个T,表示测试组数,接下来T组每组第一行包含两个正整数N,M。M表示总共能够用来做题的时间,N代表oj里的题目的数目。接下来的N行每行包括两个的整数,分别表示做每个题的时间Ti和这道题的人品值Vi。 1 <= N, M <= 100000, 1 <= Ti, Vi <= 10

Output

输出文件仅包含一个整数表示规定时间内可以做题得到的最大人品值。

Sample Input 1

1
3 9
10 10
8 1
1 2

Sample Output 1

3

Hint

作者:

青岛大学acm集训队1号命题组

Source

lalal

解题报告:

这题好题啊!!!0-1背包转化成多重背包来做!!因为v和w的数据量都很小 一共100种组合,所以可以枚举然后转化成多重背包来做。

AC代码:

#include<bits/stdc++.h>using namespace std;
int n,m;
int ji[15][15];
int dp[1000000],w[1000000],v[1000000];
int main()
{int t;int time,rp;cin>>t;while(t--) {scanf("%d%d",&n,&m);memset(ji,0,sizeof(ji));memset(dp,0,sizeof(dp));for(int i =1; i<=n; i++) {scanf("%d%d",&time,&rp);ji[time][rp]++;}int top = 0;for(int i = 1; i<=10; i++) {for(int j = 1; j<=10; j++) {if(ji[i][j] == 0) continue;for(int k = 1; k<=ji[i][j]; k<<=1) {w[++top] = i * k;v[top] = j * k;ji[i][j] -= k;}if(ji[i][j]>0) {w[++top] = ji[i][j] * i;v[top] = ji[i][j] * j;} }}for(int i = 1; i<=top; i++) {for(int j = m; j>=w[i]; j--) {dp[j] = max(dp[j],dp[j - w[i] ] + v[i]);} }printf("%d\n",dp[m]);}return 0 ;
}

【qduoj - 142】 多重背包(0-1背包的另类处理,dp)相关推荐

  1. 浅说——九讲背包之01背包

    所谓九讲,也就是: 0/1背包 0/1背包降维 完全背包 多重背包(二进制优化) 混合背包 二维费用背包 分组背包 有依赖的背包 背包的方案总数\背包的具体方案路径 0/1背包: [问题描述](经典) ...

  2. 旅行商的背包(二进制优化多重+0/1背包枚举体积))

    旅行商的背包(二进制优化多重+0/1背包枚举体积)) 题目描述 小 S 坚信任何问题都可以在多项式时间内解决,于是他准备亲自去当一回旅行商.在出发之前,他购进了一些物品.这些物品共有 n n n 种, ...

  3. 背包问题教程-01背包,完全背包,多重背包,混合背包 收藏

    P01: 01背包问题 题目 有N件物品和一个容量为V的背包.第i件物品的费用是c[i],价值是w[i].求解将哪些物品装入背包可使价值总和最大. 基本思路 这是最基础的背包问题,特点是:每种物品仅有 ...

  4. 动态规划-----------01背包,完全背包与多重背包

    P01: 01背包问题 题目 有N件物品和一个容量为V的背包.第i件物品的费用是c[i],价值是w[i].求解将哪些物品装入背包可使价值总和最大. 基本思路 这是最基础的背包问题,特点是:每种物品仅有 ...

  5. 01背包,完全背包,多重背包,分组背包的使用条件以及代码模板

    背包问题算是动态规划中的入门题目了,背包问题有很多种.背包九讲中讲的很清楚,我就不班门弄斧了,针对几种比较常见的背包问题,阐述一下它的使用前提和代码模板. 1.01背包问题 题目 有N 件物品和一个容 ...

  6. 01背包、完全背包、多重背包

    参考(都有些错误):https://github.com/guanjunjian/Interview-Summary/blob/master/notes/algorithms/%E7%BB%8F%E5 ...

  7. 01背包、完全背包、多重背包问题的C++实现及路径记录

    这里主要实现路径记录,只求最值问题移步 01背包.完全背包.多重背包问题的C++实现 以下均打印输出路径,即装入背包的物品序号,和最大值. 01背包问题 #include <iostream&g ...

  8. 01背包,完全背包,多重背包,混合背包,二维费用背包,分组背包,背包问题求方案数

    1 01背包问题 有 NNN 件物品和一个容量是 VVV 的背包.每件物品只能使用 一次. 第 iii 件物品的体积是 viv_ivi​,价值是 wiw_iwi​.求解将哪些物品装入背包,可使这些物品 ...

  9. python 完全背包问题_动态规划——背包问题python实现(01背包、完全背包、多重背包)...

    参考: 描述: 有N件物品和一个容量为V的背包. 第i件物品的体积是vi,价值是wi. 求解将哪些物品装入背包,可使这些物品的总体积不超过背包流量,且总价值最大. 二维动态规划 f[i][j] 表示只 ...

  10. 背包问题(01背包,完全背包,多重背包(朴素算法二进制优化))

    写在前面:我是一只蒟蒻~~~ 今天我们要讲讲动态规划中~~最最最最最~~~~简单~~的背包问题 1. 首先,我们先介绍一下  01背包 大家先看一下这道01背包的问题   题目   有m件物品和一个容 ...

最新文章

  1. python pycurl_简单谈谈Python的pycurl模块_python
  2. JavaScript Set Homepage and Favorite
  3. 你能用微信小程序打开小程序了【附开发方法】
  4. 常见的正则表达式验证(更新中)
  5. 2013\National _C_C++_A\2.骰子迷题
  6. 太仓爱尚你婚庆--太仓浪漫婚庆第一品牌
  7. ORACLE HANDBOOK系列之五:PL/SQL中的集合类型(Collections in PL/SQL)
  8. java微信h5支付_java 微信H5支付
  9. 【智慧城市】-GIS数据获取SHP建筑数据获取总结
  10. 磁盘分区怎么恢复回去?易我分区大师恢复丢失分区
  11. PostgreSQL遍历Json
  12. Python搭建QQ聊天机器人极简教程
  13. python 等值线插值,CartoPy等值线的插值方法
  14. Win10下Photoshop cc 2019安装
  15. python:相对路径的参照物会发生变化
  16. Wing Pro 7中文版
  17. Centos 系统优化
  18. CSDN上传图片失败的解决方法
  19. Windos - 桌面图标管理
  20. Java版色情图像过滤入门示例及源码-0.1.0 (模拟GreenDam过滤机制)

热门文章

  1. 【数据结构与算法】二分查找
  2. [Leetcode][第312题][JAVA][戳气球][动态规划][记忆化搜索]
  3. 1245C. Constanze‘s Machine
  4. Spring MVC 测试 | 模拟提交表单
  5. Android File.listFiles()返回null问题
  6. java训练_Java练习
  7. java gc回收算法_Java GC回收算法-判定一个对象是否可以回收
  8. redmine两个mysql_Redmine3.4.2安装记(Win10+MySql)
  9. apple watch3连android,Apple watch 可以连android手机吗?
  10. python中安装opencv一直说不是内部或外部文件_Window系统下Python如何安装OpenCV库