洛谷P1651 塔

Java版魔塔小游戏 魔塔 小时候玩过的游戏 用Java写了几层 适合Java学习者看看 注册的用户名只能是player(偷懒只写了一个用户名)下载下来直接用eclipse导入就能看代码和运行了 立即下载

题目描述

小明很喜欢摆积木,现在他正在玩的积木是由N个木块组成的,他想用这些木块搭出两座高度相同的塔,一座塔的高度是搭建它的所有木块的高度和,并且一座塔至少要用一个木块。每个木块只能用一次,也可以不用。目前已知每块木块的高度,小明想知道在最终两个塔的高度相同的情况下,他所能搭的塔的最大高度是多少,你能帮助他吗?

输入输出格式

输入格式:

第一行为一个整数N,表示木块个数。

第二行是N个整数,表示N块木块的高度。

【数据规模】

对于100%的数据,N≤50,每块木块的高度h满足1≤h≤500000,所有木块的高度总和≤500000。

输出格式:

仅一个整数,表示能搭建的塔的最大高度,若不能搭建两座相同高度的塔,则输出“-1”。

输入输出样例

输入样例#1: 复制

3
2 3 5

输出样例#1: 复制

5

题解:

#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstdio>
#include<cstring>
using namespace std;
int dp[51][500005],a[51],sum=0,n;
void clean()
{
    for(int i=0;i<=50;i++)
    {
        for(int j=0;j<=500000;j++)
        {
            dp[i][j]=-0x3f3f3f3f;
        }
    }
}
int main() 
{
    clean();
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        sum+=a[i];
    }
    dp[0][0]=0;
    for(int i=1;i<=n;i++)
    {
    	for(int j=0;j<=sum;j++)
        {
            dp[i][j]=max(dp[i][j],dp[i-1][j]);
            dp[i][j]=max(dp[i][j],dp[i-1][j+a[i]]);
            if(j>=a[i]) dp[i][j]=max(dp[i][j],dp[i-1][j-a[i]]+a[i]);
            else dp[i][j]=max(dp[i][j],dp[i-1][a[i]-j]+j);
        }
    }
    if(dp[n][0]) cout<<dp[n][0];
    else cout<<-1;
    return 0;
}

开头的初始化很重要,没有的话只能get 5个点

Win10家庭版如何添加本地用户和组 在众多Windows版本中,Windows 10以其丰富的功能和卓越的性能吸引了大量用户。然而,对于使用Win10家庭版的用户来说,他们可能会遇到一些功能上的限制,特别是在用户和组管理方面。虽然家庭版在某些高级功能上有所缩减,但我们仍然可以通过一些技巧来实现对本地用户和组的管理。本文将详细介绍如何在Win10家庭版中添加本地用户和组,以便用户能够更好地管理计算机资源。 阅读详情

相关推荐

2025年最新Cesium学习示例:Cesium-Examples

2025年最新Cesium学习示例:Cesium-Examples

2403_88103571的博客 1010

动归---------塔

题目描述小明很喜欢摆积木,现在他正在玩的积木是由N个木块组成的,他想用这些木块搭出两座高度相同的塔,一座塔的高度是搭建它的所有木块的高度和,并且一座塔至少要用一个木块。每个木块只能用一次,也可以不用。目前已知每块木块的高度,小明想知道在最终两个塔的高度相同的情况下,他所能搭的塔的最大高度是多少,你能帮助他吗?输入输出格式输入格式: 第一行为一个整数N,表示木块个数。第二行是N个整数,表示N块木块的

htdq_gaomingtao的博客 334

PPT高清导出秘籍:如何轻松设置600dpi图片分辨率

本文详细解析了PPT导出图片模糊的根本原因,并提供了通过修改Windows注册表将导出分辨率从默认的96dpi提升至600dpi的完整教程。该方法能显著提升图片清晰度,满足学术出版与高质量印刷需求,文中还包含效果对比、进阶设置及常见问题解答。

a0b1c2d3的专栏 1315

81数塔

【问题描述】 给定一个数塔,如下图所示。在此数塔中,从顶部出发,在每一节点可以选择走左下或右下,一直走到底层。请找出一条路径,使路径上的数值和最大。 【输入形式】 输入时第一行一个整数n,表示该数塔的行数,其余n行表示该塔每行的数值 【输出形式】 输出包含两行,第一行为最大路径上的数值之和, 第二行n个数字为从上而下最大路径数值 【样例输入】 5 9 12 15 10 6 8 2 18 9 5 19 7 10 4 16 【样例输出】 59 9 12 10 18 10 #include<iostream

m0_48660343的博客 183

逆向工程实战:手把手教你破解药监局网站的动态数据加载机制(Python+Chrome开发者工具)

本文详细介绍了如何利用Python和Chrome开发者工具逆向破解药监局网站的动态数据加载机制。通过分析Ajax请求、解析JSON响应数据以及处理动态参数,帮助开发者高效采集动态加载内容,适用于爬虫开发与数据分析场景。

weixin_30832143的博客 67

python监听海康威视报警服务器

因为我使用海康威视摄像头是自带热成像的所以事件报警会上报两张图片,一张是RGB图像、另一张是热成像图像,因此使用。拿到的就是第一张RGB图像。可以点击测试,会显示。

qq_57018478的博客 1157

信号塔问题(看一次,爽一次,一直看,一直爽,嘻嘻)

说什么都不如先来个题目重要,是吧? 题目描述 有N个顶点,在顶点上放置信号塔则与之相邻的顶点能被信号覆盖到。 现在给你N-1条边,求解最少需要放置多少个信号塔才能使得所有顶点都有信号 输入 第一行:一个整数N 接下来N-1行:每行两个整数a和b(中间空格隔开,表示a和b相连) 输出 一个整数,最少需要放置信号塔的个数 样例输入 7 1 2 2 3 2 5 2 7 3 4 5 6 样例输出 3 (有...

weixin_44826485的博客 2080

MySQL等保三级合规实践:如何安全配置root账户的本地与受信主机登录策略

本文详细介绍了MySQL在等保三级合规框架下如何安全配置root账户的本地与受信主机登录策略。通过分析root账户的特殊保护需求,提供三种安全加固方案,包括限制访问范围、限定登录IP和完全禁止远程登录,并指导创建安全的远程管理账户。文章还涵盖了密码策略强化、日志审计配置和网络层防护等关键合规要求,帮助用户实现MySQL的等保三级全面合规。

weixin_42522964的博客 259

LDUOJ——E. 塔(dp+状态的选择)

E. 塔 Description 给出 NN 个木块,告诉你每块木块的高度,你要用这些木块搭出两座高度相同的塔,一座塔的高度为搭建它的木块的 高度和,并且一座塔至少要用一块木头。木块只能用一次,也可以不用。问在两座塔的高度相同的限制下,能够搭 的塔的最大高度是多少? Input 第一行一个整数 NN,表示木块个数; 第二行 NN 个整数,表示 NN 块木块的高度。 Output 仅一个数,表示能搭建的最高的塔的高度,若不能搭建两座相同高度的塔,输出-1。 Samples Input [复制](javasc

我们都有光明的未来 353

2025年华为杯中国研究生数学建模竞赛A题 通用神经网络处理器下的核内调度问题 思路+代码

针对通用神经网络处理器下的核内调度问题,我们提出了一套基于分层优化框架的系统性解决方案。该方案首先通过缓存敏感的启发式拓扑排序算法生成最小峰值缓存占用的调度序列,在满足计算图依赖关系的前提下优先选择能够释放或减少缓存占用的节点;随后采用最佳适应算法进行精细化的缓存分配,结合LRU换出策略动态管理多级缓存空间,最小化额外数据搬运量;最后引入多目标遗传算法进行联合优化,在严格控制数据搬运量不显著增加的前提下,通过关键路径分析、流水线并行和数据预取等技术进一步优化总执行时间。

YOLO 785

SAP UI5 和 Fiori 的一些小技巧合集 - 持续更新中

本文介绍笔者从事 SAP UI5 和 Fiori 开发多年以来,积累的一些经验和小技巧。会保持更新。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 911

苹果摆一摆-第11届蓝桥杯Scratch省赛真题第5题

苹果摆一摆,本题是第11届蓝桥杯Scratch省赛真题编程第5题,是初级组最后一题,中级组也有此题,题目要求考生编程实现苹果摆一摆效果,接下来的两行(第2-3行)每行2个,接下来的三行(第4-6行)每行3个…… 输入行数n,输出对应的苹果效果。如果,如果n满足条件(0 < n ≤ 10),就要在舞台上画出n行苹果所呈现的效果,如果n满足条件n > 10,由于苹果太多装不小,此时不再呈现苹果效果,但是小猫要出现在舞台上,并正确说出最后一行苹果的个数。

超平的编程课 2716

30天入门 SAP BTP 开发系列之二:了解 SAP BTP Region 的概念,包含账号申请的详细步骤

SAP BTP 的 Region,实际是一组按地理位置划分的、由 SAP 或合作 Hyperscaler 承载的基础设施栈。这些基础设施栈至少包含多可用区网络、对象存储、计算节点及自动化运维等服务。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1462

双向动态规划(满足对称定值下的最优解的线性动态规划)(以洛谷P1651 塔为例)

由于vs[差值]中差值可以被后遍历到,所以要用两个空间分开存即:(如:遍历2时,vs[2]->vs[4],然后遍历到4的时候,因为vs[4]是这一次遍历的,所以又加了一遍到vs[6],同个塔高就被加了多次,所以这次转移产生的vs[4]不能参与后面的遍历)(这只是这题环境需要的)vs[差值][1]=max(vs[差值][1],vs[转移前差值][0]+转移的塔高);vs[差值][0]=max(vs[差值][0],vs[差值][1])vs[差值]=max(vs[差值],vs[转移前差值]+转移的塔高)

m0_62694887的博客 1076

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

洛谷P1651塔

题目描述 小明很喜欢摆积木,现在他正在玩的积木是由N个木块组成的,他想用这些木块搭出两座高度相同的塔,一座塔的高度是搭建它的所有木块的高度和,并且一座塔至少要用一个木块。每个木块只能用一次,也可以不用。目前已知每块木块的高度,小明想知道在最终两个塔的高度相同的情况下,他所能搭的塔的最大高度是多少,你能帮助他吗? 输入输出格式 输入格式: 第一行为一个整数N,表示木块个数。 第二行是N个整数,表示N...

Ivan_zcy的博客 334

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

洛谷 P1651 塔(DP)

DP

2403_87021226的博客 548

廖雪峰Python教程[完整版]

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

洛谷P1651 塔【DP】【绿】

Date:2022.04.03 题目描述 小明很喜欢摆积木,现在他正在玩的积木是由 N 个木块组成的,他想用这些木块搭出两座高度相同的塔,一座塔的高度是搭建它的所有木块的高度和,并且一座塔至少要用一个木块。每个木块只能用一次,也可以不用。目前已知每块木块的高度,小明想知道在最终两个塔的高度相同的情况下,他所能搭的塔的最大高度是多少,你能帮助他吗? 输入格式 第一行为一个整数 N,表示木块个数。 第二行是 N 个整数,表示 N 块木块的高度。 输出格式 仅一个整数,表示能搭建的塔的最大高度,若不能搭建两座相同

lppppppppps的博客 373

洛谷 P1651 塔

题面题意 给出n(n<=50)个数(每个数<=500000),选择其中一些并分成两组,使得两组的和相等问这个和最大是多少. 做法 dp,dp[i][j]表示考虑到第i个数时,较大的和与较小的和相差j,较小值为dp[i][j],则每次仅包括三种转移方式: 1.不取 dp[i][j]=max(dp[i][j],dp[i-1][j]); 2.加入较小的一组: dp[i][abs(j-num

yzyyylx的博客 399

【洛谷 P1651】 塔 (差值DP)

题目链接 题意:\(n\)个木块放到两个塔里,每个木块可放可不放,使得两塔高度相同且高度最大,求最大高度。 这个差值\(DP\)的思维难度还是很大的,没想出来,我就打了一个\(dfs\)骗了好像\(20\)还是\(30\)分吧(看来搜索也写挂)。 正解是\(DP\),\(f[i][j]\)表示前\(i\)块木块使得两个塔的高度差为\(k\)时高度最大的那个是什么(神奇的状态) 那么无非就\(4\)...

weixin_30745553的博客 113

P1651 塔-【普及+提高】DP数组的平移与二维跳跃

塔 - 洛谷 设dp[i][j]为前i个木块拼成了两座塔,左边减去右边差值为j时,左边塔的最高高度。先忽略正负与空间问题,第i块木块,可以放也可以不放,不放就要承接前i-1块差值为j的状态,放的话,可以放在右边,使得差值为j+a[i]的变成j,也可以放在左边,使得差值j-a[i]的变成j. 但我们发现,存在差值为负的情况,所以我们动用了数组平移。设置500000为差值为0点,-500000为差值负向最大点,500000为差值正向最大点 另外,本次状态只受前一状态影响,连续开辟50*500000的数组一

jisuanji2606414的博客 490

洛谷 1651

这道题是一道考验如何记录状态的DP题,我们令f[i][j]表示考虑了前i个积木,两座塔的差值为j的那个低一些的塔的最高高度,对于每一块积木,我们都有三种选法,即放入第一个塔,放入第二个塔,不使用,这样状态的转移就很显然了,至于为什么是f[i][j]是表示最高高度,我们考虑如果在1到i中存在多种方法时两塔的差值为j,那么我们一定是选择低塔最高的,因为题目要求要最高的高度相等的两塔,如果在后面能够将这

TSOI_Vergil的博客 421

bzoj 1651: [Usaco2006 Feb]Stall Reservations 专用牛棚【贪心+堆||差分】

这个题方法还挺多的,不过洛谷上要输出方案所以用堆最方便 先按起始时间从小到大排序。 我用的是greater重定义优先队列(小根堆)。用pair存牛棚用完时间(first)和牛棚编号(second),每次查看队首的first是否比当前牛的起始时间早,是则弹出队首记录当前牛的答案,再把新的pair放进去,否则增加牛棚,同样要塞进队里 #include<iostream> #include&...

weixin_30663391的博客 173

11-7-2017 星期三 NOIp周

8:37 模板 并查集 10:21 洛谷P1462 通往奥格瑞玛的道路(打完了没法debug); 16:07洛谷P1462 通往奥格瑞玛的道路(二分 + 最短路); 16:51 花匠 NOIp2013(贪心或DP,我用的贪心,DP不太会啊); 17:31 洛谷P1453 城市环路(基环树上的DP); 18:17 Dijkstra模板; 21:47 NOI...

afhvqwzk819746的博客 189

洛谷 - [USACO09MAR]向右看齐Look Up(单调栈)

题目链接:https://www.luogu.org/problem/P2947 时间限制: 1.00s 内存限制: 125.00MB 题目描述 Farmer John’s N(1≤N≤100,000)N (1 \le N \le 100,000)N(1≤N≤100,000) cows, conveniently numbered 111…NNN, are once again standing ...

ityanger的技术栈 2703

SMU Summer 2024 Contest Round 6

线段树merge,思维bfs,全部情况取min,背包dp求能组合出数字的方案数

qq_42643660的博客 517
上一篇: 洛谷P1103 书本整理
下一篇: 洛谷P1156 垃圾陷阱
「已注销」
博客等级 码龄8年 64粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值