HDU 1069 DP

几道ICPC题目及其代码(C++) 几道简单的ICPC题目及其代码实现(C++) 立即下载
/****************************************************************************************************
    经典DP,LIS,最长上升子序列
****************************************************************************************************/
#include <iostream>
#include <iomanip>
#include <functional>
#include <algorithm>
#include <complex>
#include <cstdlib>
#include <cstring>
#include <fstream>
#include <sstream>
#include <utility>
#include <bitset>
#include <cctype>
#include <cstdio>
#include <limits>
#include <memory>
#include <string>
#include <vector>
#include <cmath>
#include <ctime>
#include <queue>
#include <stack>
#include <list>
#include <map>
#include <set>
using namespace std;

#define LOWBIT(x) ( (x) & ( (x) ^ ( (x) - 1 ) ) )
#define CLR(x, k) memset((x), (k), sizeof(x))
#define CPY(t, s) memcpy((t), (s), sizeof(s))
#define SC(t, s) static_cast<t>(s)
#define LEN(s) static_cast<int>( strlen((s)) )
#define SZ(s) static_cast<int>( (s).size() )

typedef double LF;
//typedef long long LL;		//GNU C++
//typedef unsigned long long ULL;
typedef __int64 LL;		//Visual C++ 2010
typedef unsigned __int64 ULL;

typedef pair<int, int> PII;
typedef pair<LL, LL> PLL;
typedef pair<double, double> PDD;

typedef map<int, int>::iterator MI;
typedef vector<int>::iterator VI;
typedef list<int>::iterator LI;
typedef set<int>::iterator SI;

template <typename T>
T sqa(const T &x)
{
	return x * x;
}
template <typename T>
T gcd(T a, T b)
{
	if (!a || !b)
	{
		return max(a, b);
	}
	T t;
	while (t = a % b)
	{
		a = b;
		b = t;
	}
	return b;
}
template <typename T>
T ext_gcd(T a, T b, T &x, T &y)
{
	if (!b)
	{
		x = 1;
		y = 0;
		return a;
	}
	T d = ext_gcd(b, a % b, x, y);
	T t = x;					
	x = y;
	y = t - a / b * y;
	return d;
}
template <typename T>
T invmod(T a, T p)
{
	LL inv, y;
	ext_gcd(a, p, inv, y);
	inv < 0 ? inv += p : 0; 
	return inv;
}

const int INF_INT = 0x3f3f3f3f;
const LL INF_LL = 0x7fffffffffffffffLL;		//15f
const double oo = 10e9;
const double eps = 10e-7;
const double PI = acos(-1.0);

#define ONLINE_JUDGE

const int MAXN = 504;
const int loop[][3] = {{0, 1, 2}, {0, 2, 1}, {2, 1, 0}};

int n, cube[MAXN][3];
int dp[MAXN];
struct Node
{
	int x, y, z;
	int s;
	bool operator < (const Node &rhs) const
	{
		return x < rhs.x && y < rhs.y || x < rhs.y && y < rhs.x;
	}
	bool operator > (const Node &rhs) const
	{
		return x > rhs.x && y > rhs.y || x > rhs.y && y > rhs.x;
	}
}node[MAXN], tmp[MAXN];

bool inline nodeCmp(const Node &na, const Node &nb)
{
	return na.s < nb.s;
}
void ace()
{
	int cas = 1;
	int ncnt;
	while (cin >> n, n)
	{
		for (int i = 0; i < n; ++i)
		{
			for (int j = 0; j < 3; ++j)
			{
				cin >> cube[i][j];
			}
		}
		for (int i = 0; i < n; ++i)
		{
			for (int j = 0; j < 3; ++j)	//因为立方体是无限的,但是x,y相同的立方体只可能出现一次
			{
				int k = i * 3 + j;
				node[k].x = cube[i][ loop[j][0] ];
				node[k].y = cube[i][ loop[j][1] ];
				node[k].z = cube[i][ loop[j][2] ];
				node[k].s = node[k].x * node[k].y;
			}
		}
		n *= 3;
		sort(node, node + n, nodeCmp);	//对面积排序,尽量使小面积的在前面
		ncnt = 0;
		CLR(dp, 0);
		dp[0] = node[0].z;	//dp数组记录在当前第i个立方体放入后,以第i个立方体为底的高度
		for (int i = 1; i < n; ++i)
		{
			int buf = 0;
			for (int j = 0; j < i; ++j)	
			{
				if (node[i] > node[j] && buf < dp[j])	//显然应该找之前最高的,因为只要保证node[i] > node[j]
				{										//那么i之前的状态对于i来说是无关的	
					buf = dp[j];
				}
			}
			dp[i] = buf + node[i].z;
		}
		int res = 0;
		for (int i = 0; i < n; ++i)
		{
			res = max(res, dp[i]);
		}
		printf("Case %d: maximum height = %d\n", cas++, res);
	}
	return ;
}
int main()
{
#ifndef ONLINE_JUDGE
	freopen("in.txt", "r", stdin);
#endif
	ace();
	return 0;
}

WOL唤醒配置(以太网、PHY、MAC) MAC 就是以太网控制器,属于OSI的数字链路层。phy 属于OSI的物理层(Physical layer),所以叫phy。CPU Mac与phy通信通过MII接口,数据的传输通过MDIO数据线。通过配置phy的相关寄存器实现不同的功能。 阅读详情

相关推荐

2025年度工业级3D全景相机技术解析选型参考:国产品牌的技术突围与市场格局

本文分析了工业级3D相机在智慧城市和建筑数字化中的应用。通过对比国内外主流设备的技术参数和应用场景,发现国产品牌如众趣科技在性价比和本地化服务方面具有优势,尤其适合大型空间扫描项目;而国际品牌如Faro、Leica则在精度和可靠性上保持领先。建议根据项目需求(如测距范围、精度要求、预算)进行设备选型,综合考虑扫描效率、数据处理能力和系统兼容性。国产品牌已在国内大型基建项目中展现出竞争力,国际品牌则更适合高精度逆向工程和国际化项目。

gxdtgsy的博客 1074

2018 ACM-ICPC Syrian Collegiate Programming Contest

Problem H: Bugged System 思路来源**(https://blog.youkuaiyun.com/Mitsuha_/article/details/84455292)** Mr. Light is visiting a city with a “smart” metro system. Or so it seems … There are exactly n stations in a ...

qq_43482330的博客 430

2025 年第十五届 APMCM 亚太地区大学生数学建模竞赛A题 农业灌溉系统优化

该摘要探讨了农业灌溉系统优化面临的复杂挑战,涉及智能灌溉技术的应用与资源配置问题。研究聚焦于一个1公顷的方形农场案例,该农场种植三种作物并面临动态环境条件(土壤类型、气象变化)。系统优化需平衡河流引水(非线性成本函数:C=50L^1.2+0.1Q^1.5)与储水罐灌溉(成本5元/升容积)两种方案,同时满足喷灌技术约束(喷头间距≥15米,覆盖半径15米)。关键矛盾体现在"平河旱储"的水资源调配策略与多作物需水量差异之间的协调,需通过传感器数据实时调整灌溉方案以实现效率最大化。(149字)

m0_60472361的博客 642

HDU - 1069 DP

HDU - 1069 DP Monkey and Banana 题目大意: 给你n种长方体,每种立方体都有个长宽高,每种立方体有无数个,让你选择任意立方体堆起来,要求上面的长和宽都严格小于下面的长和宽,问你最高能堆多高。 数据范围: 0<n≤300<n≤30,多组输入到n为...

TRDD的博客 94

计量经济学(因果关系探究-空间双重差分模型: 破解空间溢出效应的因果分析工具)

本文介绍了传统双重差分(DID)模型及其局限性,重点阐述了空间DID模型的必要性。传统DID通过组间差分分离干预效应,但无法处理空间溢出效应。空间DID模型引入空间计量方法,包括三种类型:空间自回归模型(SDID-SAR)捕捉因变量溢出,空间误差模型(SDID-SEM)处理残差相关性,空间杜宾模型(SDID-SDM)同时考虑因变量和自变量的空间滞后。模型选择需结合空间相关性检验,适用于环境政策、房地产限购等存在空间交互效应的研究场景。

YBAdvanceFu的博客 2033

要理解成本中心与利润中心的根本区别与适用场景,需从 “责任范围、考核核心、管理目标” 三个核心维度切入,同时明确二者在企业管理体系中的联动关系

摘要: 成本中心与利润核心区别在于责任范围、考核目标和管理权限。成本中心仅对成本负责(如生产、行政部门),考核成本控制能力;利润中心需同时管控成本与收入(如独立产品线、区域分公司),以利润为核心指标。选择标准取决于单元是否拥有收入决策权:无收入权的支持/执行部门设为成本中心,能独立经营、核算盈亏的单元设为利润中心。二者协同运作,成本中心为利润中心提供基础支持,利润中心的需求动态影响成本中心资源配置,共同实现企业整体目标。划分本质是确保考核指标与责任范围匹配,避免管理失效。

金牌架构师 657

HDU1069 Monkey and Banana (DP)

HDU1069 Monkey and Banana (DP) HDU1069 Monkey and Banana DP 题意 思路 AC代码 原题地址:http://acm.hdu.edu.cn/showproblem.php?pid=1069 题意 有n个小块,每个块能摆成6种方案,每个小块提供无数个,下一层的长宽都必须严格大于上一层的长与宽。问最高能够叠多高。 ...

HuiSeKongHuan的博客 390

使用 PLS 回归进行近红外光谱的异常值检测

在光谱数据中,并非每个数据点都是有效的,因此,在构建模型时找到与大部分数据不符合的数据点是一种必要的操作。这些数据我们称之为。在这篇文章中,我们将使用PLS回归进行红外光谱数据的异常值检测。

qq_44204759的博客 1424

HDU1069-Monkey and Banana 【DP】

题目地址:https://cn.vjudge.net/problem/HDU-1069 看了一下这个DP教程,受到启发来做这题,一开始solve函数是这么写的 int solve() { getpre(); memset(dp,0,sizeof(dp)); dp[0][0] = 0; dp[0][1] = bl[0].c; for(int i=1;i&...

好好学习天天向上 3298

机器学习kaggle报告-Facial Keypoints Detection【完整解题过程+代码】

在处理面部关键点检测任务时,首先需要将存储在 CSV 文件中的图像数据转换为可以显示和分析的图像。数据集中每个图像是以一个一维数组的形式存储,其中包含了图像的所有像素值。为了将这些数据转化为实际的图像,我们需要按照一定的规则将这些像素值重新排列为一个二维矩阵(即图像的行列)。下面是一个案例,展示了如何将数据集中的图像数据转化为图片。转化过程读取CSV文件:首先,我们需要读取包含图像数据的 CSV 文件,通常该文件包含多张图像的像素值。每一行表示一张图像,并且包含图像的像素值列表。提取图像数据。

一键难忘的博客 3355

c++ pcl点云处理(2025 长期更新)

目录1.常用的点云文件2.认识点云的文件格式3.点云的数据结构4.输入输出(IO)5.KD树6.Oc树(八叉树)7.点云可视化8.点云滤波9.点云拟合分割10.点云与图像11.特征点与特征描述及提取12.点云配准13.点云曲面重建

twnkie的博客 2259

【HDU 1069 Monkey and Banana】 排序+DP

HDU1069 题意就是一个小猴子有n种不同的长方体,每种有无数个,小猴子想把长方体垒到最高,要求上面的长方体的下表面严格小于下面的长方体的上表面, 根据题意我们知道一个长方体最多有六种可利用状态,我们按照长度为第一关键字,宽度为第二关键字排序,这样就保证了合法的拜访状态一定是按照这个顺序进行的,我们就可以n^2枚举转移了。 这一类DP有一个特点,先排序保证最优状态一定是按照这个顺序进...

lajiyuan的博客 234

学Simulink--进阶电机控制场景实例:基于Simulink的异步电机定子磁链定向控制(SFOC)仿真

本文详细介绍了基于Simulink的异步电机定子磁链定向控制(SFOC)仿真实现方法。主要内容包括:1) SFOC原理分析,突出其对转子参数不敏感的优势;2) 工业风机驱动系统的完整建模流程,涵盖主电路搭建、坐标变换、磁链观测器设计等关键步骤;3) 核心模块代码实现,包括电压模型磁链观测器和双闭环PI控制器;4) 仿真结果验证了SFOC在转速响应(0.2s)、转矩恢复(0.15s)和参数鲁棒性(转子电阻变化50%时转速波动<2%)方面的优异性能。本文为工程师提供了实用的SFOC系统开发指南,特别适用于

amy_mhd的博客 116

HDU 1069 Monkey and Banana(dp)

题目链接:【HDU 1069】 有n(n 一种盒子一共有6种叠加的方式,长宽分别为xy、yx、xz、zx、yz、zy 最多只需要6*n个盒子叠加起来,将这6*n个盒子按照长宽从小到大排序,然后简单dp一下就能得到答案 #include #include #include #include #include using namespace std; int len, dp[200]

小小西北风 463

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

HDU1069(DP)

HDU1069(DP) 这道题较为简单,有了前面DP的基础后,拿到这道题,怎么想呢?我现在理解DP问题就是找到一个方法,能把总问题由上到下分解,有点类似学校安排迎新晚会,任务出来了,然后老师交给学生会主席,学生会主席把任务分解成一个个小任务,安排给各个部门,各个部门的部长再细分成更小的任务给部员,到部员的时候任务就变得可实现了,就可以完成,然后把结果反馈给部长,部长再反馈给主席,而DP的重点就是...

ZhYC99的博客 220

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

HDU 1069 dp??

http://acm.hdu.edu.cn/showproblem.php?pid=1069题意就是 给你n种箱子,每种箱子的长宽高都给你,但是呢,每个箱子有无限个,你现在要把这些箱子叠起来,满足下面的箱子的长宽大于上面的箱子(严格),问你最大叠加高度思路: 我们用结构体存所有情况的箱子,之后按照(长小的放前面的原则sort)之后求最大递增子序列来求高度即可。dp[i] 表示 以 i 为结尾的箱子

My_stage的博客 712

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

hdu - 1069 DP

题目链接:https://cn.vjudge.net/problem/HDU-1069 题意:有n种砖,每种砖有长宽高三个属性,每种砖有无限个,且砖可以旋转(即每种砖的长宽高可以相互对调),按照上面的砖的长与宽严格小于下面的砖的长与宽的放置方法,求最大的砖块累加高度。 思路:将每种砖(a,b,c)分解为六种砖(a,b,c),(b,a,c),(c,b,a),(c,a,b),(a,c,b),(b,...

CoAAColA的博客 289

C - Monkey and Banana HDU - 1069——基础dp

Think: 1知识点:基础dp 2题意:询问n种箱子在满足 1>可以不同面为底 2>一个叠一个 3>叠的箱子中上面的箱子长和宽都严格小于下面的箱子的长和宽 4>无限个箱子 条件下能够叠的最高高度vjudge题目链接以下为Accepted代码——基础dp#include <cstdio> #include <cstring> #include <algorithm>using name

BlessingXRY的博客 505

hdu 1069 Monkey and Banana DP

传送门:hdu 1069 Monkey and Banana题目大意一堆科学家研究猩猩的智商,给他M种长方体,每种N个。然后,将一个香蕉挂在屋顶,让猩猩通过 叠长方体来够到香蕉。现在给你M种长方体,计算,最高能堆多高。要求位于上面的长方体的长要小于(注意不是小于于等于)下面长方体的长,上面长方体的宽小于下面长方体的宽。解题思路每一种长宽高不同的箱子来说,最多有六种摆放方式, 把这六种摆放的样式全部

woshinannan的专栏 435

HDU 1069 dp

HDU1069 A group of researchers are designing an experiment to test the IQ of a monkey. They will hang a banana at the roof of a building, and at the mean time, provide the monkey with some blocks. If...

weixin_43971913的博客 139

HDU 1069 Monkey and Banana dp 题解

HDU 1069 Monkey and Banana 题解 纵有疾风起 题目大意 一堆科学家研究猩猩的智商,给他M种长方体,每种N个。然后,将一个香蕉挂在屋顶,让猩猩通过 叠长方体来够到香蕉。 现在给你M种长方体,计算,最高能堆多高。要求位于上面的长方体的长要大于(注意不是大于等于)下面长方体的长,上面长方体的宽大于下面长方体的宽。 输入输出 开始一个数n,表示有多少种木块,木块...

weixin_30433075的博客 174

hdu acm 1069

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1069 这一题够折磨人,这一题难度在dp中只是1难度值,害惨我了,不过也学到了不少东西 #include <iostream>#include "algorithm"using namespace std; struct blocks{int x,y,z;}jm[3*31]; ...

aoyuan4706的博客 93

hdu 1069 dp

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1069 #include #include #include #include #include #define INF 99999999 #define maxn 205 #define LL long long using namespace std; struct node { int l,w

wwwlps的博客 205

[线性dp] hdu1069

题目 有多个立方体长宽高为x,y,z,可以重复使用,用来叠高高。但是每次叠的下面一个必须严格大于上面一个。求能堆到的最高的高度 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1069 思路 固定两条边,第三条边就是加上的高。所以一个立方体对应有六种摆放方式,把所有的摆放方式保存起来,按从大到小sort一遍。每次最高的值就是要找它下面的立方体最高的值加上它本身 代码 #include<cstdio> #include<cstring> #

kosf_的博客 226

hdu1069线性dp

/* dp[i]:取第i个方块时最多可以累多高 */ #include<bits/stdc++.h> using namespace std; struct node{ int x,y,z; bool operator<(const node & a)const { if(x==a.x)return y>a.y;...

weixin_30502157的博客 110

dp打开思路3:HDU1069 POJ3616 POJ1088

HDU 1069 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1069 题意:把给定的长方体(不限)叠加在一起,叠加的条件是,上面一个长方体的长和宽都比下面长方体的长 和宽短;求这些长方体能叠加的最高的高度.(其中(3,2,1)可以摆放成(3,1,2)、(2,1,3)等). 思路:其实就是求最长的单调递减序列。在长和宽的递减下,求最大能得出...

少说,多做。 5304
上一篇: PKU 2528 线段树
下一篇: HDU 1074 状态压缩DP
codeforces_sphinx
博客等级 码龄15年 32粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值