【HNOI 2004】 敲砖块 解题报告

【HNOI2004】 敲砖块 动态规划 题目描述:题解: 首先将砖块全部左对齐,变成一个直角三角形的模样。 可以得出如下结论: 1、每一列必须敲到由上到下的若干砖块。 2、如果某一列敲掉了k个砖块,那么其右边的那一列至少敲掉了k-1个砖块。 设f[i][j][k]f[i][j][k]表示从右到左已经敲到了第i列,其中第i列敲掉了j个砖块且总共敲掉了k个砖块的最大得分,那么转移方程为f[i][j][k]=maxf[i+1] 阅读详情

HNOI2004 敲砖块
一道DP题,把其看成一个直角三角形,敲第 i 列的第j块时,第i+1 列至少是敲了 j−1 块的
s[i][j][k] 是敲掉第 i 列第j块一共敲了 k 块的最大分值,那么转移方程为

s[i][j][k]=max(s[i+1][h][k−j](j−1≤h≤n−i))+∑h=1ja[h][i]

时间复杂度 O(n3m)
代码如下

/*
My convictions will not falter.--Poppy
*/
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
int N,M,ans,a[55][55],s[55][55][700],sum[55][55];
int read()
{
    int x=0;char c=getchar();
    while(c<48||c>57) c=getchar();
    while(c>=48&&c<=57) x=x*10+c-48,c=getchar();
    return x;
}
int main()
{
//  freopen("brike.in","r",stdin);
//  freopen("brike.out","w",stdout);
    int i,j,k,h;
    N=read();M=read();
    for(i=1;i<=N;i++)
      for(j=1;j<=N+1-i;j++)
        a[i][j]=read();
    for(i=N;i>=1;i--) 
      for(j=1;j<=N+1-i;j++)
        sum[i][j]=sum[i][j-1]+a[j][i];
    for(i=N;i>=1;i--)
      for(j=0;j<=N+1-i;j++)//从零开始 
        for(k=(j*j+j)/2;k<=M;k++)
          {
          for(h=max(j-1,0);h<=N-i;h++)
          s[i][j][k]=max(s[i][j][k],s[i+1][h][k-j]);
          s[i][j][k]+=sum[i][j];
          ans=max(ans,s[i][j][k]);
          }
    printf("%d",ans);
}

PS:还有前缀和优化的时间复杂度为 O(n2m) 的大神做法

ads设计Doherty功放(1) Doherty功放的设计 阅读详情

相关推荐

潜流式人工湿地计算_复合人工湿地净化水产养殖污水技术

技术概论1. 定义与分类人工湿地是指用人工筑成水池或沟槽,底面铺设防渗漏隔水层,充填一定深度的基质层,种植水生植物,利用基质、植物、微生物的物理、化学、生物三重协同作用使污水得到净化的系统。当池塘养殖污水进入人工湿地时,其污染物被床体吸附、过滤、分解而达到水质净化作用。按照水体流动方式,人工湿地分为表面流人工湿地、水平潜流人工湿地、垂直潜流人工湿地以及由前面几种湿地混合搭配的组合式人工湿...

weixin_42365490的博客 4249

题解:HNOI2004 敲砖块 【DP】

作为一个小蒟蒻,感觉自己的DP已经菜的要死了… 省选前抱普及的佛脚 这个题目大佬们说要旋转,然后本蒟蒻不会… 怎么看都像是树形背包 但是他上面的两个转移过来中间有重叠,所以和树形背包没有任何关系…压根就不是一棵树… 于是开始磕… int main() { n=read(),m=read(); for(int i=1;i&amp;lt;=n;++i) { for(in...

子衿君的博客 361

Excel VBA+Adobe Acrobat Pro PDF发票识别全流程(附避坑指南)

本文详细介绍了如何利用Excel VBA与Adobe Acrobat Pro的API接口,构建一套企业级PDF发票智能识别与处理系统。内容涵盖从环境配置、核心文本提取原理、数据解析清洗到工程化脚本设计的全流程,并针对密码区干扰、不征税发票等常见问题提供避坑指南,旨在帮助财务人员和开发者实现高效、精准的财务数据处理自动化。

weixin_29207439的博客 348

敲砖块(codevs 1257)题解

【问题描述】 在一个凹槽中放置了 n 层砖块、最上面的一层有n 块砖,从上到下每层依次减少一块砖。每块砖都有一个分值,敲掉这块砖就能得到相应的分值,如下图所示。14 15 4 3 2333 33 76 2 2 13 11 22 23 31如果你想敲掉第 i 层的第j 块砖的话,若i=1,你可以直接敲掉它;若i>1,则你必须先敲掉第i-1 层的第j 和第j+1...

220

Openclaw Onboarding向导全攻略——如何配置你的第一个AI助手

很多新手在成功运行 `openclaw --version` 后,面对黑底白字的终端就陷入了迷茫:“安装好了,然后呢?” 本篇我们就彻底解决这个问题,带你完整走完 `openclaw onboard` 交互式初始化配置向导的每一步,从“安装完成”到“真正能用”,只差这一个向导的距离。 本文为2026年3月最新版,适配OpenClaw v2026.2.x 稳定版,所有步骤均经过实测验证,可直接落地。

夏日清风 1917

UE5.4像素流送实战:GPU驱动、WebRTC与系统级调优全解析

像素流送是将实时3D渲染画面通过WebRTC编码推流至浏览器的关键技术,其本质是GPU硬件编码(如NVENC)与低延迟网络传输(UDP+BBR)的深度协同。理解其原理需跨越图形API(Vulkan/DX12)、实时音视频(H.264/H.265)、WebRTC信令与NAT穿透四大技术层。技术价值在于突破终端算力限制,支撑远程工业仿真、云VR看房等高交互场景;但落地难点集中于基础设施层——如NVIDIA驱动与UE5.4.3的CUDA Toolkit 12.2兼容性、Linux内核TCP/UDP参数调优、GPU

weixin_32943857的博客 616

dp——洛谷P1437 [HNOI2004]敲砖块

https://daniu.luogu.org/problem/show?pid=1437 这道题不可以直接行列dp; 这样一个状态可以从非常多且复杂的状态更新过来; 很麻烦,不可取; 标算 https://wenku.baidu.com/view/934fa580d4d8d15abe234e48.html 这里讲的很好; 但是我们不用旋转三角形,直接在dp的时候换一下顺序就好啦;#i

我怎么这么菜的呢 766

ROS2_control 对机器人控制(不完整,有时间再更新)

会提示安装好其他相应的东西# 本来应该还要有ros-humble-gz-ros2-control,但是直接安装提示定位不到ros2 control --help # 输出 Commands:list_controller_types 输出可用的控制器类型及其基类list_controllers 输出已加载控制器的列表、类型和状态list_hardware_components 输出可用硬件组件列表list_hardware_interfaces 输出可用命令和状态接口列表。

m0_52113469的博客 2468

【HNOI2004】敲砖块

越来越懒了,不想粘题目题解样例的输入是个很好的提醒, 把他往左边对齐之后 如果要打掉某个位置,那么必须要打掉右上方的所有砖 然后就很明显的一个DP了。。。。#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<algorithm> #include<set

小蒟蒻yyb的博客 384

深入探讨:StoreKit 2的交易处理与收据验证

iOS应用开发中,StoreKit 2带来收据处理和交易验证的新变化。本文通过实例分析,对比传统StoreKit与StoreKit 2的差异,指出直接访问sandboxReceipt文件可能引发错误。解决方案是使用Transaction对象和SKReceiptRefreshRequest,详细介绍了如何初始化ReceiptLoader、处理交易更新及验证收据的完整流程,帮助开发者适应新框架,确保购买流程安全可靠。

m0_74337424的博客 357

改进的主动轮廓模型实现图像分割

主动轮廓模型的优点在于可以自适应地调整轮廓形状和位置,适用于不同形状和大小的目标分割。改进的主动轮廓模型是一种有效的图像分割方法,能够适应不同场景下的图像分割需求。改进的主动轮廓模型涉及到许多参数,如模型参数、分割参数、权值系数等,这些参数的调整也会直接影响到分割结果。本文将介绍一个改进的主动轮廓模型,该模型可以实现对图像进行有效的分割。改进的主动轮廓模型是在传统的主动轮廓模型基础上进行的改进。和传统的模型相比,改进的主动轮廓模型加入了外部力和内部力,能够更好地适应复杂场景下的图像分割。

qq_39605374的博客 296

[HNOI2004]敲砖块 解题报告

[HNOI2004]敲砖块 题目链接 P1437 敲砖块 解题报告 很自然地,看到这道题我们会想到数字三角形。可惜的是,我们发现:不能简单地将一个点的左上角与右上角的值进行比较,因为选择数可能会有重叠。 不妨画画图,看看我们选择的是怎样一个图形把。 ***** **** *** ** * 比如上面这个东西。 ##### #### #*# ** * 我们发现,选择的数永远是若干个三角的重叠。我们考虑按照这个轮廓进行转移。令 sum(i,j)sum(i,j)sum(i,j) 表示以 (i,j)(i,j)(i

日居月诸的博客 168

3、Tone Mapping色调映射(Advanced High Dynamic Range Imaging )

3、Tone Mapping色调映射(Advanced High Dynamic Range Imaging) 如今,大多数可用的显示设备无法本地显示HDR内容。 入门级显示器的对比度仅为200:1。 尽管高端液晶电视具有更高的对比度,但平均对比度约为10,000:1,但通常每个色彩通道的离散度为8位,很少为10位。 这意味着色调限制为255。在过去的二十年中,研究人员花费了大量时间和精力来压缩HDR图像和视频的范围,以便可以在LDR显示器上更“自然”地看到数据。 图3.1 色调映射和真实场景之间.

ISP行业的忠实粉丝 1866

9.[HNOI2004]敲砖块

前言 新人,第一道水题 作者:H_D_NULL 本文的其他链接:我的博客 题目链接:P1437 [HNOI2004]敲砖块 解题思路 首先,经过观察,我们发现如果一块砖头被敲,那么其上一层与其相邻的两块砖头也必须被敲,这两块砖头又会影响与它们相邻的上层砖头…就会形成以下一个三角形: 这就相当于DP的一个状态,而且可以预处理,不禁让我们想到了用DP的方法求解。 但是,我们发现敲了多个砖头时,多个三角形可能会产生重叠: 这样就产生了后效性,不符合动态规划的原则。 难道,只有放弃了吗… 振作起来啊!经

qq_46873565的博客 366

廖雪峰Python教程[完整版]

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

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

P1437 [HNOI2004] 敲砖块题解__DP专项

一篇题解 是一个DP题

Radon.S的家 847

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Luogu 1437 [HNOI2004]敲砖块 (动态规划)

Luogu 1437 [HNOI2004]敲砖块 (动态规划) Description 在一个凹槽中放置了 n 层砖块、最上面的一层有n块砖,从上到下每层依次减少一块砖。每块砖都有一个分值,敲掉这块砖就能得到相应的分值,如下图所示。 14 15 4 3 23 33 33 76 2 2 13 11 22 23 31 如果你想敲掉第 i 层的第j 块砖的话,若i=1,你可以直接敲掉它;若i&...

dipinzhu4111的博客 178

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

[HNOI2004]打砖块(敲砖块)

题目:codevs1257、洛谷P1437 题目大意:有一些砖块呈倒三角形状,每块砖敲掉后有一个分数。除第一行外,敲掉一块砖必须先把上面两块砖敲掉。现在你能敲m块砖,求能得到的最大分数。 解题思路:此题是一道非常恶心的dp。我们先把砖块“左对齐”,然后敲掉砖块(i,j)(i>1)时,就必须先敲掉(i-1,j)和(i-1,j+1)。 设$f[i][j][k]$表示打到第i列第j...

284

神奇DP [HNOI2004] 打砖块

问题 E: HNOI2004] 打砖块 时间限制: 1 Sec 内存限制: 128 MB 题目描述 【题目描述】 在一个凹槽中放置了n层砖块,最上面的一层有n块砖,第二层有n-1块,……最下面一层仅有一块砖。第i层的砖块从左至右编号为1,2,……i,第i层的第j块砖有一个价值a[i,j](a[i,j]<=50)。下面是一个有5层砖块的例子: 如果你要敲掉第i层的...

weixin_30561425的博客 75

[HNOI2004] 敲砖块

题目描述: 敲砖块块 题目分析: 题解 我们可以不翻转三角形,只要搞一下顺序就好了 题目链接: Luogu 1437 Ac 代码: #include &lt;cstdio&gt; #include &lt;iostream&gt; #include &lt;cstring&gt; int dp[60][60*60][60]; int a[60][60],sum[60...

HT008的Blog 250

好题集锦

P4438 【HNOI/AHOI2018】道路 二叉树dp优化空间,自上而下树形dp P1437 【HNOI2004】敲砖块 正难则反 P1772 【ZJOI2006】物流运输 题解状压解法,省略杂余转移。 P2224 【HNOI2001】产品加工 \(f(i,j)\)表示状态为\((i,j)\)时可不可取,可以变为下标存状态,值存另一个状态的最优化情况。 P2446 【SDOI2010...

acw10104的博客 168

停课刷题总结

*号表示没有写**号表示没有解决cnt=162/174bzoj 1192: [HNOI2006]鬼谷子的钱袋 二进制,思维bzoj 1191: [HNOI2006]超级英雄Hero 网络流,残量网络bzoj 1179: [Apio2009]Atm tarjan,缩点,最长路,水题bzoj 1143: [CTSC2008]祭祀river 二分图,最大独立集*bzoj 1101: [POI2007]...

weixin_30895603的博客 607

各省省选题思考记录

1、[HNOI2004]敲砖块 题目简介:一个倒过来的数塔,想敲下面一块必须敲上面两块,,求k次的最高得分;;; 思考:这种题一般不是贪心,,实际上稍微想一想就知道不对了;;;;;考虑dp,,由于敲一块必须敲上面两块,所以状态转移的方向已经明确了;; 因为数塔是一个整体,所以考虑用局部凑整体,,,,由于dp具有一定的方向性,,且有一定不可描述性,,一次一定要选一块砖,,就避免了不全面

-----PSI----- 611

重走长征路---OI每周刷题记录---5月31日 2014

总目录详见https://blog.youkuaiyun.com/mrcrack/article/details/84471041 做题原则,找不到测评地址的题不做。2018-11-28 重走长征路---OI每周刷题记录---5月31日  2014 本周共计 题+题 测评地址: 中位数+链表:「cf433C」Ryouko’s Memory Note 模拟:「cf433B」Kuriyama Mira...

mrcrack的博客 410

题目推荐—BZOJ 水题推荐

[bzoj1756]Vijos1083小白逛公园 裸题- -。。线段树维护lmax,rmax,max,sum然后搞之。。 [Ahoi2008]Meet 紧急集合 求两两点的lca然后会发现必然有两个lca是相等的,枚举三个lca然后特判下   [Usaco2010 Feb]slowdown 慢慢游 线段树维护dfs序。。很裸- -。。   [Usaco2006 Nov]Roadbl

初学者 4733

HNOI 2004 敲砖块

题目链接:点我点我:-) 题目描述: 在一个凹槽中放置了 n 层砖块、最上面的一层有n 块砖,从上到下每层依次减少一块砖。每块砖 都有一个分值,敲掉这块砖就能得到相应的分值,如下图所示。14 15 4 3 23 33 33 76 2 2 13 11 22 23 31如果你想敲掉第 i 层的第j 块砖的话,若i=1,你可以直接敲掉它;若i>1,则你

Free Cat~~~ 跳动的喵 581
上一篇: 【Noi OpenJudge】 核电站 解题报告
下一篇: 间谍网络--tarjan 解题报告
Mario_sz
博客等级 码龄10年 13粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值