uva10130-超级大甩卖

题目链接 http://acm.hust.edu.cn/vjudge/problem/19210

解题思路

就是0-1背包问题。只是不止一个背包。

可以用滚动数组降成一维。

代码

#include<iostream>
#include<cstdio>
#include<string.h>
using namespace std;
const int maxLen = 1000;
int dp[105][35];
int w[maxLen], v[maxLen];
int maxw[105];
int maxValue[105];
int cases, n, m;
void Read()
{
    scanf("%d", &n);
    for(int i=1; i<=n; i++) scanf("%d%d", &w[i], &v[i]);
    scanf("%d", &m);
    for(int i=1; i<=m; i++) scanf("%d", &maxw[i]);
}
int main()
{
    cin >> cases;
    while(cases--) {
        memset(dp, 0, sizeof(dp));
        Read();
        int people = 1;
        while(people <= m) {
            for(int i=1; i<=n; i++)
                for(int j=maxw[people]; j>=0; j--)
                    if(j - v[i] >= 0)
                        dp[people][j] = max(dp[people][j-v[i]] + w[i], dp[people][j]);
            maxValue[people] = dp[people][maxw[people]];
            people++;
        }
        int tot = 0;
        for(int i=1; i<people; i++) tot += maxValue[i];
        printf("%d\n", tot);
    }
}
时间: 2024-10-02 20:02:08

uva10130-超级大甩卖的相关文章

大话重构连载16:超级大函数

事情总是这样的:当我们对一个遗留系统一忍再忍,再忍,忍,还要忍--终于积攒到某一天,实在忍无可忍了,拍案而起,不能再忍了,重构!!!事情就这样发生了.然而,在这时你突然发现,重构的工作千头万绪,真不知从何开始.堆积如山的问题此起彼伏,期望修改的设计思绪万千.这里有个想法,那里有个思路,什么都想做,却什么都做不了,真是脑子里一团乱麻.这时候,没有一个合理的步骤,清晰的计划,瞎干蛮干是十分危险的,它会为你的重构带来不可预期的未来.无数次的经验告诉我,不论是什么系统,采用什么架构,从分解大函数开始,肯

20亿与20亿表关联优化方法(超级大表与超级大表join优化方法)

记得5年前遇到一个SQL.就是一个简单的两表关联.SQL跑了几乎相同一天一夜,这两个表都非常巨大.每一个表都有几十个G.数据量每一个表有20多亿,表的字段也特别多. 相信大家也知道SQL慢在哪里了,单个进程的PGA 是绝对放不下几十个G的数据,这就会导致消耗大量temp tablespace,SQL慢就是慢在temp来回来回来回...的读写数据. 遇到这样的超级大表与超级大表怎么优化呢?这篇文章将告诉你答案. 首先创建2个測试表 t1,t2 数据来自dba_objects create tabl

CVPR-2020 AAAI2020 CVPR-2019 NIPS-2019 ICCV-2019 IJCAI-2019 论文超级大合集下载,整理好累,拿走不谢

论文超级大合集下载,整理好累,拿走不谢!!! ------------------------------------ CVPR-2020 AAAI-2020 CVPR-2019 NIPS-2019 ICCV-2019 IJCAI-2019 ------------------------------------ 独木难成林,寡林不成森, 要从整体上把握学术动向, 还是得快速查阅 论文合集! ------------------------------------ 百度链接: https://p

APU平台DirectX 12性能测试:超级大惊喜!

转自:http://www.ithome.com/html/digi/129840.htm [size=1pc]微软将会在接下来的GDC 2015游戏开发者大会上公布DirectX 12规范,而前段时间AnandTech在微软.NVIDIA和AMD的帮助下完成了首个实际测试,虽然还不是最终版本,而且只是初步结果,不过可以看出DX12新规范在CPU效率和多线程上有惊人的提升. [size=1pc]之前他们的测试平台是Intel Core系列CPU和各种主流以上独显,近日他们还补充了对AMD Kav

Android 下拉刷新上拉加载 多种应用场景 超级大放送(上)

转载请标明原文地址:http://blog.csdn.net/yalinfendou/article/details/47707017 关于Android下拉刷新上拉加载,网上的Demo太多太多了,这里不是介绍怎么去实现下拉刷新上拉加载,而是针对下拉刷新上拉加载常用的一些应用场景就行了一些总结,包含了下拉刷新上拉加载过程中遇到的一些手势冲突问题的解决方法(只能算是抛砖引玉). 去年9月的时候,那时自己正在独立做Android项目.记得刚刚写完那个ListView列表页面(木有下拉刷新,上拉加载)

Android 下拉刷新上拉载入 多种应用场景 超级大放送(上)

转载请标明原文地址:http://blog.csdn.net/yalinfendou/article/details/47707017 关于Android下拉刷新上拉载入,网上的Demo太多太多了,这里不是介绍怎么去实现下拉刷新上拉载入,而是针对下拉刷新上拉载入经常使用的一些应用场景即可了一些总结,包括了下拉刷新上拉载入过程中遇到的一些手势冲突问题的解决方法(仅仅能算是抛砖引玉). 去年9月的时候.那时自己正在独立做Android项目. 记得刚刚写完那个ListView列表页面(木有下拉刷新,上

Java超级大火锅

1.事务 事务指的是逻辑上的一组操作,这组操作要么全部成功,要么全部失败. 事务的4大特性: ACID,指数据库事务正确执行的四个基本要素的缩写.包含:原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持久性(Durability). 详见:http://blog.csdn.net/scythe666/article/details/51790655 2.悲观锁和乐观锁 秒懂乐观锁和悲观锁 悲观锁(Pessimistic Lock), 顾名思义,就是很

BZOJ-2462: [BeiJing2011]矩阵模板 (宇宙无敌超级大暴力~)

2462: [BeiJing2011]矩阵模板 Time Limit: 2 Sec  Memory Limit: 128 MBSubmit: 1278  Solved: 607[Submit][Status][Discuss] Description 给定一个M行N列的01矩阵,以及Q个A行B列的01矩阵,你需要求出这Q个矩阵哪些在原矩阵中出现过.    所谓01矩阵,就是矩阵中所有元素不是0就是1. Input 输入文件的第一行为M.N.A.B,参见题目描述. 接下来M行,每行N个字符,非0即

超级大神珍藏的Python初学者最详细学习路线图分享

如果你想选择一种语言来入门编程,那么Python绝对是首选! Python非常接近自然语言,精简了很多不必要的分号和括号,非常容易阅读理解.编程简单直接,更适合初学编程者,让其专注于编程逻辑,而不是困惑于晦涩的语法细节上,比起JAVA.C#和C/C++这些编程语言相对容易很多. 因此,即使是非计算机专业或者没有基础的小白,也能分分钟入门.那么,Python到底该怎么学?从哪里入手呢?下面由小编资深团队为初级入门的小伙伴提供2020年最新Python学习路线图,还为小伙伴们免费提供学习视频. 读者

如何将超级大(肯定溢出)的数用数组来表示

算法原理:以2^10000为例 在最高数组位以2的幂次相乘,当最高位>10,将高位保存在低一位的数组中2^5 在数组中以23形式保存,最后以反向输出 /*在程序中如果要是表示2^1000次方形式,明显肯定溢出,如果用数组形式表示嗯*/ #include<stdlib.h> #include<stdio.h> #define ARRAY_LEN 4000 int main() { int ar[ARRAY_LEN]={0}; int i,j,print_flag=0,jinw;