poj 2392 多重背包(堆石头上天)

poj 2392 解题报告 这是我的第三篇结题报告,欢迎大家指正!!!!!!!!!!!!! 立即下载
题意:有很多种石头,每种石头的高度是hi,但是此种石头不能放到ai之上的高度,并且这种石头有ci个。问用所有这些石头最高能放多高?

思路:多重背包。首先对每种石头能摆到的最高高度进行升序排序。建立一个数组表示下标值所示的高度能否得到。然后遍历每一种石头更新数组。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 405
#define M 40000
struct s{
	int h,max,num;
}s[N];
int used[M+1];
int n;
int cmp(const struct s* a,const struct s* b){
	return (*a).max-(*b).max;
}
int main(){
	freopen("a.txt","r",stdin);
	while(scanf("%d",&n)!=EOF){
		int i,j,k;
		memset(used,0,sizeof(used));
		for(i = 0;i<n;i++)
			scanf("%d %d %d",&s[i].h,&s[i].max,&s[i].num);
		qsort(s,n,sizeof(struct s),cmp);
		used[0] = 1;
		for(i = 0;i<n;i++)
			for(j = s[i].max-s[i].h;j>=0;j--)
				if(used[j])//如果之前的石头能够摆放到j高度
					for(k = 1;k<=s[i].num;k++){//从此高度开始摆放第i种石头,遍历摆放的个数
						if(j+k*s[i].h > s[i].max || used[j+k*s[i].h])
							break;
						used[j+k*s[i].h] = 1;
					}
		for(j = M;j>=0;j--)
			if(used[j]){
				printf("%d\n",j);
				break;
			}
	}
	return 0;
}

在遍历高度的时候,可以增加一个flag数组存放当前种类石头的使用个数,这样内层的两个嵌套循环便可以简化为一个循环:

for(i = 0;i<n;i++){
	memset(flag,0,sizeof(flag));
	for(j = t[i].h;j<=t[i].maxh;j++)
		if(used[j-t[i].h] && !used[j]&&flag[j-t[i].h]<t[i].num){
			flag[j] = flag[j-t[i].h]+1;
			used[j] = 1;
		}
}


传感器:MQ-5燃气模块测量燃气值(底部附代码) 本篇文章介绍使用MQ-5燃气模块测量燃气值,CPU还是选择单片机,MQ-5主要使用的技术为ADC,燃气对于单片机来说是模拟信号,需要转换为数字信号,再经过相关计算公式将燃气模拟值转换成对应的燃气数值,便于人们方便查看。例如家庭使用燃气模块测量燃气值,如果燃气值超过一定的范围,可以外设一个报警装置,保证家庭的生命安全。(1)ADC(analog to digital converter)即模数转换器,它可以将模拟信号转换为数字信号。按照其转换原理主要分为逐次逼近型、双积分型、电压频率转换型三种。STM32F1 阅读详情

相关推荐

新手避坑指南:HT7036计量芯片SPI读取电压的完整流程(从复位到校准)

本文详细介绍了HT7036计量芯片的SPI读取电压完整流程,从硬件准备到校准设置,重点解析了复位引脚处理、SPI通信配置、芯片初始化及数据处理等关键步骤。针对常见问题如晶振焊接、SPI时序错误等提供实用解决方案,帮助开发者高效完成电压测量与校准。

weixin_30070339的博客 326

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

FOC:【1】浅析SVPWM算法(七段式)以及MATLAB仿真验证

最近的科研项目需要使用到SVPWM算法,网上相关的原理介绍很多。对于纯应用的需求来说,或许有些内容上的冗余。 本文的目的就是简要并且明确的给出具体的计算步骤,可以帮助快速上手。同时利用MATLAB进行了简单算法验证。.....................

Alex的技术博客 1万+

POJ 2392【多重背包】

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

weixin_30341735的博客 202

【理解机器学习算法】之岭回归Ridge - L2 Rgularization

本人就职海外从事人工智能领域开发设计。 希望花时间总结下流行的机器学习算法,希望大家一起学习,欢迎指正!

Hyman Qiu 2317

新手必看:用FileZilla从武大IGS中心下载GNSS数据,再到crx2rnx转换的完整流程

本文详细介绍了新手如何通过FileZilla从武汉大学IGS中心下载GNSS数据,并使用crx2rnx工具将数据转换为RINEX格式的完整流程。涵盖工具准备、FTP连接、文件解压、格式转换及常见问题排查,帮助测绘和地信专业人员高效处理GNSS观测值数据。

weixin_29292431的博客 427

poj2392 - Space Elevator

想看更多的解题报告: http://blog.youkuaiyun.com/wangjian8006/article/details/7870410                                      转载请注明出处:http://blog.youkuaiyun.com/wangjian8006 题目大意:有一头奶牛要上太空,他有很多种石头,每种石头的高度是hi,但是不能放到ai之上的高度,并

贰圣 4017

STM32CUBEIDE调试中HardFault_Handler崩溃的故障分析器实战解析

本文详细解析STM32CUBEIDE调试中HardFault_Handler崩溃问题的实战处理方法。通过内置故障分析器自动诊断硬件异常原因,如内存越界、堆栈溢出等,提供图形化界面简化调试流程,并分享配置步骤、典型案例及高级调试技巧,帮助开发者快速定位和解决嵌入式系统崩溃问题。

night的博客 644

POJ 2392

POJ 2392 背包问题的变形+贪心。 这里的完全背包,有个数限制,而且,还有每个的最大容量还不一样。 我们可以贪心一下,让最高从低到高排序,可以证明出来,先让最大高度低的砌墙,一定会是最优解。 然后我们可以思考状态转移方程。 令j=需要的费用 bool dp[j[=dp[j-h[i]];做滚动数组,j从c[i]到a[i]; 表示可以加起来的状态有哪些,而且这里个数已经暗含在了dp方程里面,因为...

weixin_44019404的博客 512

Android功耗系列专题理论之一:功耗优化分析思路简介

本文系统介绍了电子系统功耗分析方法,涵盖静态与动态功耗原理、电流波形分析技术和模块化拆解策略。重点阐述了PMIC与CPU协同管理机制、DVFS动态调节技术,以及通过示波器捕获波形特征定位异常的方法。针对亮屏等典型场景,提出三阶段对比分析法,并详细说明硬件/软件拆解方案及混合验证策略。文章还总结了常见问题模块(CPU、多媒体、外设)的排查流程,强调需结合日志分析、温度控制及重复测试确保数据可靠性,为功耗优化提供系统化解决方案。

1459

第二节_PySide6项目创建流程介绍、手把手教学打包EXE可执行文件

本文详细介绍了如何使用PySide6创建一个带UI界面的Python程序,并将其打包成exe可执行文件。首先,通过Pycharm创建项目,并使用PySide6-Designer工具设计UI界面,将生成的ui文件转换为Python代码。接着,编写主程序,加载UI界面并实现功能,如加载图片、设置图标等。最后,通过资源文件管理图片资源,并确保UI界面的更新能同步到主程序中。整个过程涵盖了项目创建、UI设计、代码编写及资源管理,适合初学者学习如何将Python程序打包为可执行文件。

su桥木的博客 2560

Poj-2392:Space Elevator-多重背包+贪心

:原题链接 一群牛想上天,准备建一个用石头堆成的太空电梯,给定KKK种不同的石头,每个石头三个属性, hih_ihi​:石头的高度 aia_iai​:石头不能超过的高度 cic_ici​:石头的数量 问怎样才能堆的最高。 看到高度,数量,就想起了熟悉的packet,但是这个aia_iai​是搞毛的呢。直观来看,上限越低的石头越适合先用,因为他没天赋,上不去高塔,所以先进行一次排序,根据aia_...

csyifanZhang的博客 326

OmniBox2.0.X版本 一站式影视订阅与多端播放平台文档

OmniBox 是一站式影视订阅与多端播放平台:你可以用 JS 或 Python 按 OmniBox 规范自建爬虫源,在后台把多个爬虫源自由组合成订阅,然后在网页、手机、电视等全平台的客户端里使用。只要客户端支持 TVBox、猫源、UZ、Emby 等协议,即可无缝对接。同时支持电视直播源、六大平台直播间和网盘源视频在线观看,通过 Docker 一键部署。

欢迎来到鸾姝淡月博客,专为程序员和编程爱好者打造的技术博客。我们分享编程语言趋势、开发工具、编程哲学、职业发展等,助你掌握新技术,优化技能,激发编程热情。 1922

POJ 2392 初涉多重背包

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

自在飞花 949

STM32F407中文手册

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

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

DP(六)——多重背包的三重循环算法(效率不是很高)

POJ 2392http://poj.org/problem?id=2392 题意:有一群牛要上太空,他们计划建一个太空梯(用一些石头垒),    他们有k种不同类型的石头,每一种石头的高度为h,数量为c,由于会受到太空辐射,    每一种石头不能超过这种石头的最大建造高度a,求解利用这些石头所能修建的太空梯的最高的高度. 解析:多重背包问题,与一般的多重背包问题所不同的知识多了一个限制...

weixin_30457881的博客 265

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

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

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

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

poj 2392 Space Elevator(多重背包)

题意: k种石头(不用在意具体是什么东西),每种石头的高度为h,这种石头不能处于超过a的高度,数量为c,问最多能用这些石头叠出多大的高度 解题思路: 这是一道稍微有点改动的多重背包题目,被改为每种石头都有一个容量限制。 多重背包的问题我们可以进行转换,对于c*h>=a的石头,在不超过a的条件下,无论去多少块石头都不会用完c,所以就是可以转换为完全背包问题, 而c*h 代

johsnows的博客 505

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 with which

深海沧澜的博客 497

Space Elevator POJ - 2392 And Cash Machine POJ - 1276 (多重背包)

Problem 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 w...

我の名字 270

poj2392 多重背包

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

zht的专栏 550

poj2392 Space Elevator(多重背包)

http://poj.org/problem?id=2392 题意: 有一群牛要上太空。他们计划建一个太空梯-----用一些石头垒。他们有K种不同类型的石头,每一种石头的高度为h_i,数量为c_i,并且由于会受到太空辐射,每一种石头不能超过这种石头的最大建造高度a_i。帮助这群牛建造一个最高的太空梯。 吐槽: 做练习的时候,连需不需要对数据排序都没分析清楚。。。下次再也不把练习安排

天亮说晚安 2245

多重背包 POJ - 2392

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 tow

你若盛开 清风自来 579

POJ 2392 Space Elevator 贪心+多重背包

Space Elevator Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) Total Submission(s) : 4   Accepted Submission(s) : 1 Problem Description The cows are going to spa...

pxlsdz的博客 437

poj 2392 Space Elevator(未优化的多重背包)

http://poj.org/problem?id=2392 题意:有K种石头,每种石头的高度为h,数量为num,它放置的高度不能超过a。问这些石头最高能达到的高度。 思路:纯多重背包。将k种num个的多重背包转化成∑numi个物品的01背包。首先要对a从小到大排序,这是为了能够找到最优解,然后进行01背包,利用hash【】标记能够达到的高度. #include #incl

810

poj2392解题报告

又见奶牛,这次的奶牛们要飞天,上太空了!!!!farmer john有木有!!!USACO的题源总是那么逗!!! 题目大意:有k种石头,高为hi,在不超过ai的高度下,这种石头可以放置,有ci种这个石头,求这些石头所能放置的最高高度 解题思路:多重背包,但注意一开始就要以最高海拔排序一发(通过重载操作符简化代码),然后枚举的时候第二层循环记得用每石头的海拔来逆序枚举!! 代码: #incl

h123120的专栏 544
上一篇: poj 1419 最大团
下一篇: poj 1236 tarjan缩点(能达到全图的最少起点数)
dumeichen
博客等级 码龄13年 55粉丝 475原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值