poj 2392 多重背包

【Qt串口调试助手】1.1 - Qt5编写串口调试助手,Qt串口编程 这章来学习串口数据流操作。仿照成品制作一个自己用Qt编写的串口助手。 1. 布局UI界面 创建QWidget工程,布局UI界面:拖入2个 Plain Text Edit,作为串口数据的接收显示和发送框。 拖入几个 Combo Box 、Label 和 Push Button,使用两个Widget进行布局。如下所示。 将接收区的 Plain Text Edit,属性勾选上 readOnly,使其运行时不会被人为的输入操作影响。 加入一些弹簧,使布局美观。(有必要可以加设置不能调整.. 阅读详情
Space Elevator
Time Limit: 1000MS Memory Limit: 65536K
Total Submissions: 8877 Accepted: 4209

Description

The cows are going to space! They plan to achieve orbit by building a sort of space elevator: a giant tower of blocks. They have K (1 <= K <= 400) different types of blocks with which to build the tower. Each block of type i has height h_i (1 <= h_i <= 100) and is available in quantity c_i (1 <= c_i <= 10). Due to possible damage caused by cosmic rays, no part of a block of type i can exceed a maximum altitude a_i (1 <= a_i <= 40000). 

Help the cows build the tallest space elevator possible by stacking blocks on top of each other according to the rules.

Input

* Line 1: A single integer, K 

* Lines 2..K+1: Each line contains three space-separated integers: h_i, a_i, and c_i. Line i+1 describes block type i.

Output

* Line 1: A single integer H, the maximum height of a tower that can be built

Sample Input

3
7 40 3
5 23 8
2 52 6

Sample Output

48

Hint

OUTPUT DETAILS: 

From the bottom: 3 blocks of type 2, below 3 of type 1, below 6 of type 3. Stacking 4 blocks of type 2 and 3 of type 1 is not legal, since the top of the last type 1 block would exceed height 40.

Source

USACO 2005 March Gold

首先对于k种block,每种都有限制高度ai。 假设ai<aj,假如最后是由第i种和第j种block组成的,那么同样的组合第i种的block肯定是放下面最好。所以先对k种物品进行排序。k种物品所能达到的最大高度由前k-1种所能达到的得到。 dp[k][h] -> {dp[k-1][h-c*h[k]]},另外可以用滚动数组优化空间。


#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>

using namespace std;

#define maxk 401
#define maxa 40001

int dp[maxa];
struct node
{
    int h,c,a;
    bool operator < (const node &b) const
    {
        return a < b.a;
    }
}v[maxk];


int main()
{
    int k;
    while(~scanf("%d", &k)){
        for(int i = 1; i <= k; i++)
            scanf("%d%d%d", &v[i].h, &v[i].a, &v[i].c);
        sort(v+1, v+k+1);

        memset(dp, 0, sizeof(dp));
        dp[0] = 1;
        for(int i = 1; i <= k; i++)
        for(int j = v[i].a; j >= 0; j--)
        for(int t = 0; t*v[i].h <= j && t <= v[i].c && !dp[j]; t++)
            dp[j] = dp[j-t*v[i].h];

        int ans;
        for(int i = v[k].a; i >= 0; i--)
        if(dp[i]){
            ans = i;
            break;
        }

        printf("%d\n", ans);
    }
}



【计算机组成原理】实验4:单周期CPU(Verilog)中海大 【计算机组成原理】实验4:单周期CPU 阅读详情

相关推荐

如何使用AutoDl平台跑自己的模型(纯干货,步骤很详细)

记录我使用AutoDL云服务器来跑自己模型的全过程

qq_45073592的博客 3万+

【POJ 2392 Space Elevator 】 多重背包

POJ 2392 这个和多重背包的区别就是还有个高度限制 那么你按照高度从小到大排序 然后让所有可以到达的状态是由之前状态推出来 优先用小高度限制的块去堆 然后输出答案即可 /* if you can't see the repay Why not just work step by step rubbish is relaxed to ljq */ #includ...

我是谁 --- 卡比兽 236

CST仿真实例001:圆极化平板天线仿真

CST仿真实例001:圆极化平板天线仿真实例

weixin_47638568的博客 1万+

POJ 2392 Space Elevator(多重背包,排序)

POJ 2392 Space Elevator 题意: 解题过程: AC代码: POJ 2392 Space Elevator 题目传送门 题意: 你需要建一个高塔,材料总共有K种,每种材料有三个属性:高度,数量,限度。限度是指该种材料只能在低于该限度的高度下被使用。问你最高能够把这个高塔建到多高。 解题过程...

dieyi9889的博客 125

Android 11系统定制:如何彻底隐藏状态栏电池图标(RK3568实测)

本文详细解析了在Android 11系统上如何通过多维度修改实现状态栏电池图标的彻底隐藏,特别针对RK3568平台提供了实战指南。从系统UI架构解析到核心配置文件修改,再到进阶技巧与疑难排查,帮助开发者深度定制Android系统,满足特定场景需求。

weixin_29250573的博客 376

riscv32-gcc工具链实战:从下载到编译的完整指南

本文提供了一份详尽的riscv32-gcc工具链实战指南,涵盖从官方渠道下载预编译版本、正确选择riscv32-glibc版本、配置环境变量到实战编译的全过程。通过清晰的步骤和避坑指南,帮助开发者快速搭建稳定的RISC-V交叉编译环境,并成功编译从Hello World到Linux内核的程序。

s3t4u的博客 675

POJ 2392——Space Elevator【多重背包 & 二进制优化 & 贪心】

题目传送门 Description The cows are going to space! They plan to achieve orbit by building a sort of space elevator: a giant tower of blocks. They have K (1 <= K <= 400) different types of blocks wi...

NIRVANA REBIRTH 311

从稀疏表示到低秩表示(一)

确定研究方向后一直在狂补理论,最近看了一些文章,有了些想法,顺便也总结了representation系列的文章,由于我刚接触,可能会有些不足,愿大家共同指正。 从稀疏表示到低秩表示系列文章包括如下内容: 一、 sparse representation 二、 一、 sparse representation 1  sparsity  一个线性表示解决的问题如下图所示:

彼岸花 3万+

POJ 2392【多重背包】

题意: k个块,给出每个块的高度hi,数量ci,不能超过的高度; 求这些块可以组成的最大高度一个。 思路: 大致可看这个题是一个背包,背包的价值是高度,背包的承重是高度。 对于每个物品,有他的价值是高度,还有限定的数量,看到这里就是一个多重背包, 然后对于每个物品还有一个限制是对于他的特定高度,这种怎么处理其实很简单吧。 dp[]应该是一个存一个高度; wa了一发,没有考虑一维的时候

ONE MORE TRY 838

使用单调栈求解最大矩形面积问题的C++实现

通过本文的介绍,我们详细讲解了如何使用单调栈求解砖墙中最大矩形面积的问题,并提供了完整的C++代码实现。希望通过本文的学习,你能掌握单调栈的基本概念及其在实际问题中的应用。如果你有任何疑问或建议,欢迎在评论区留言交流。

m0_57781768的博客 813

DexProtector内存态匿名段检测绕过与dex重组技术

Dex文件是Android应用的核心执行单元,其结构规范(如header_item、class_def_item、code_item)决定了运行时加载与解析的底层逻辑。DexProtector通过将dex数据拆解为多个无文件名、受保护的内存匿名段(如[anon:dp_header]、[anon:dp_code]),规避传统基于文件特征或标准加载路径的检测机制。该策略依赖Android mmap内存管理与ART虚拟机对dex结构的刚性要求,形成可被观测的布局规律。理解其内存态组织原理,结合权限/大小/命名/内

weixin_30855761的博客 689

POJ 2392 初涉多重背包

题意:有K种石头,每种石头的高度为H,个数为Q,放置高度不能超过C。问这些石头最高的可达高度是多少。 裸的多重背包。 对于N种,K件的多重背包可以转换成∑ki的01背包。 假设不存在限制C时,则先放A种还是先放B中对结果无影响。当添加上限制条件C时,应该让C小的在下面。故在进行01背包前要将C排序。 #include #include #include #include #

自在飞花 949

Qt图形几何之QRect详解:从基础操作到高级功能全解析

本文全面介绍了Qt框架中的QRect类,详细解析了其核心功能和使用方法。主要内容包括:1)QRect的基本概念与多种构造函数;2)矩形属性获取和状态判断方法;3)几何操作函数(移动、调整大小等);4)几何关系判断(包含、相交等);5)坐标变换和边距处理;6)实用功能与QRectF转换;7)综合应用示例(图形界面、碰撞检测、布局管理);8)性能优化建议和常见陷阱。通过丰富的代码示例,展示了QRect在Qt图形编程中的实际应用,帮助开发者掌握矩形处理的各项操作技巧,提升图形界面开发效率。

专注现代C++实战,从核心语法到高性能编程,助力开发者深入掌握系统级编程精髓。 117

POJ 2392 Space Elevator(多重背包)

题目链接: POJ 2392 Space Elevator 题意: 有n种梯子,每种梯子的单位长度是height[i],个数是num[i],这种梯子能达到的最大高度是limit[i]。问由这n种梯子互相叠加最多能达到的高度是多少? 分析: 多重背包问题,可行性分析,不过先把梯子按照limit从小到大排序。//64656K 657MS #include <cstdio> #include

ramay7 534

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

poj2392 多重背包问题

http://poj.org/problem?id=2392 Description The cows are going to space! They plan to achieve orbit by building a sort of space elevator: a giant tower of blocks. They have K (1 <= K <= 400) diff

ACM,再见! 1878

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

poj2392多重背包

#include <iostream> #include <algorithm> #include <cstdio> #include <string.h> using namespace std; const int INF = 99999999; struct node{ int x; int y; int z; }; ...

qq_43251559的博客 185

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【POJ2392】带有限制的多重背包

1.题目链接。题目大意:给你一堆Bolcks,每种Bolcks有三种属性:数量,高度,以及最高能放置的高度。问你用这些Bolcks能够组合堆起来最高的高度是多少。这个如果没有第三个条件,我们直接多重背包即可。第三个条件是什么意思呢?它就是在说,这些砖块所能放置的高度是有区间限制的。在这种情况下,求组合起来的最大值。 2.首先我们贪心的选择,肯定是先选高度限制小的,就是说那些适合放在比较低的高度的...

YG爱木木 625

POJ 2392 Space Elevator 多重背包

分析: 在多重背包的基础上增加一个简单的约束条件:每个砖块都有高度限制 所以,注意两点:   (1) 遍历所有砖块时,必须按照高度限制从低到高,否则无法取得最优解; (2)遍历高度 dp 时,遍历范围为:   [ h[i], a[i] ] ,其中 h[i] 为第 i 种砖块的高度,a[i] 为第 i 种砖块的高度限制。 明白了以上两点,代码就没什么技术难度了: // POJ_2392_...

yangguangqizhi的博客 283

多重背包-POJ 2392 Space Elevator

POJ 2392题目大意如下: FJ的牛想上天,但是要借助梯子,现在有K种梯子,由于会收到宇宙射线的影响,所以每种梯子限定了能够到达的最大高度。给出K种梯子的单位长度、数量、以及允许到达的最大高度。现在要求给出一个最优方案,使得使用这K种梯子到达最大高度。 还是DP,定义dp[i][j]:表示使用前i+1种梯子是否能够到达高度j。 之前自己都没有意识到这是一个多重背包问题,所以写了个比较烂的

kornberg_fresnel的博客 419

poj2392 多重背包

如题:http://poj.org/problem?id=2392 给出几种石头的每个的高度,使用当前石头不允许超过的最大高度,石头的数量,要求求所有石头最大能组成的高度。   首先由最大高度最小的那组拿石头,最后从最大高度最大的那组拿,保证了背包容量的不断增加,使得dp关系成立。   dp策略:当前最大高度是否可以达到,,这里使用了辅助数组used,used[i]代表了当前高度i之前使

zht的专栏 550

POJ 2392(多重背包)

Space Elevator Time Limit: 1000MS   Memory Limit: 65536KB   64bit IO Format: %I64d & %I64u Description The cows are going to space! They plan to achieve orbit by buildin

mowenwen_的博客 484

多重背包问题 POJ 2392

#include#include #include #include using namespace std; struct block { int height; int maxHeight; int number; bool operator < (const block& b)const { if(maxHeight < b.maxHeig

xiao597896577的专栏 500

POJ - 2392 Space Elevator 多重背包

传送门:POJ2392 题意:有k种砖头,每种高为hi,可以摞到的最大高度为ai,数量为ci,问用这些砖头最多摞多高。 思路:典型多重背包,算了算感觉不加优化也能过,写一发还真过了。。 暴力: #include #include #define ll long long #define pb push_back #define fi first #define se second #def

WA是一笔财富 344

POJ2392 Space Elevator 多重背包

POJ2392 Space Elevator 多重背包

htrdchh的博客 177

POJ_2392 Space Elevator(多重背包)

Space Elevator Description The cows are going to space! They plan to achieve orbit by building a sort of space elevator: a giant tower of blocks. They have K (1 <= K <= 400) different types of blocks

EaShion1994的专栏 728
上一篇: poj 2686 状态dp
下一篇: cf 484b 二分搜索/区间最值
HuanTongH
博客等级 码龄12年 7粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值