NOIP2023模拟8联测29 C. 蛋糕
NOIP2023模拟8联测29 C. 蛋糕
文章目录
- NOIP2023模拟8联测29 C. 蛋糕
- 题目大意
- 思路
- code
题目大意
你现在得到了一个二维蛋糕,它从左到右可以分成 n n n 列,每列高为 a i a_i ai 。对于每一列,又可以从下到上分为 a i a_i ai 块,并且最上面一块权值为 1 1 1 ,从上到下权值依次加 。每一列的最上面的权值为 的块的上表面有“奶油”。
你现在要把这一个蛋糕分成若干个矩形,要求每一个矩形上都要有“奶油”,也即每个矩形要包含至少一个权值为 1 1 1 的块。显然蛋糕中的每一格都必须被划分到恰好一个矩形内,且矩形不能包含没有蛋糕的格子。
定义每一块矩形的代价为其每一行的最大值之和,即 ∑ i = l r ( max j − = d u v i , j ) \sum_{i = l}^r(\max_{j -= d}^u v_{i , j}) ∑i=lr(maxj−=duvi,j) 。特别地,对于宽(列数)为 1 1 1 的矩形,代价为矩形内权值的最大值。请你最小化划分整个蛋糕的代价。
n ≤ 3000 n\le 3000 n≤3000
思路
考虑维护区间最大值和最小值的位置。
然后搞一个 d p l , r , k dp_{l , r , k} dpl,r,k 表示区间 [ l , r ] [l , r] [l,r] 内从下往上前 k k k 层的最小代价。
通过一通推理发现,对于一个区间 [ l , r ] [l , r] [l,r] 的最优策略就是删除最高的那一列或者把区间的所有蛋糕删到最矮的那一列那么高。
搞一个记忆化就好了
code
#include <bits/stdc++.h>
#define LL long long
#define fu(x , y , z) for(int x = y ; x <= z ; x ++)
using namespace std;
const int N = 3005;
int n , min1[N][N] , max1[N][N];
LL a[N];
map<LL , LL> dp;
LL gt (LL l , LL r , LL k) { return (l * (N + 1) + r) * N + k; }
LL getsum (LL x , LL y) { return (x + y) * (y - x + 1) / 2; }
LL solve (int l , int r , LL k) {LL id = gt (l , r , k);if (dp.count (id)) return dp[id];int mxd = max1[l][r] , mnd = min1[l][r];LL ans = a[mxd] - k;if (mxd > l) ans += solve (l , mxd - 1 , k);if (mxd < r) ans += solve (mxd + 1 , r , k);if (l != r) {LL ans1 = getsum (a[mxd] - a[mnd] + 1 , a[mxd] - k);if (l < mnd) ans1 += solve (l , mnd - 1 , a[mnd]);if (mnd < r) ans1 += solve (mnd + 1 , r , a[mnd]);ans = min (ans , ans1);}return dp[id] = ans;
}
int main () {freopen ("cake.in" , "r" , stdin);freopen ("cake.out" , "w" , stdout);scanf ("%d" , &n); fu (i , 1 , n) {scanf ("%lld" , &a[i]);}fu (l , 1 , n) {min1[l][l] = max1[l][l] = l;fu (r , l + 1 , n) {min1[l][r] = min1[l][r - 1] , max1[l][r] = max1[l][r - 1];if (a[min1[l][r - 1]] > a[r]) min1[l][r] = r;if (a[max1[l][r - 1]] < a[r]) max1[l][r] = r;}}
// return 0;printf ("%lld" , solve (1 , n , 0));return 0;
}相关文章:
NOIP2023模拟8联测29 C. 蛋糕
NOIP2023模拟8联测29 C. 蛋糕 文章目录 NOIP2023模拟8联测29 C. 蛋糕题目大意思路code 题目大意 你现在得到了一个二维蛋糕,它从左到右可以分成 n n n 列,每列高为 a i a_i ai 。对于每一列,又可以从下到上分为 a i a_i ai 块&#x…...
echarts的图表立体感——实现立体柱状图和立体饼图的详细教程
😂博主:小猫娃来啦 😂文章核心:使用echarts实现立体柱状图和立体饼图的详细教程 文章目录 简单介绍立体柱状图和立体饼图环境配置实现立体柱状图实现立体饼图总结 简单介绍立体柱状图和立体饼图 立体柱状图和立体饼图是数据可视化…...
解决VSCode使用SSH远程连接时无法指定用户名的问题
Windows 11自带OpenSSH客户端,和VSCode配合得很好,没有这个问题。 今天要说的是旧版本Windows 7/8/10系统遇到的问题。 PS: Windows 7可以运行的最后版本是VSCode 1.80.2 由于Windows 7/8/10没有自带的OpenSSH客户端,但可以调用MSYS环境下的…...
Vue Camera是什么,如何用
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 一、Vue Camera是什么? Vue Camera是一个基于Vue.js的相机组件库,…...
ORANGE室内高尔夫—韩国室内模拟高尔夫原装进口真实体验身临其境
ORANGE室内高尔夫—韩国室内模拟高尔夫 真实体验 身临其境 室内高尔夫的产品优势: 1. 实际高尔夫球场的限制:室内高尔夫可以弥补室外高尔夫球场数量有限的问题,使得更多人能够享受高尔夫运动。 2. 天气和季节的限制:室内高尔夫可…...
【观察】从口袋到云端全景式AI创新,联想“全栈智能”再升级
知名科技杂志《连线》创始主编凯文凯利曾预测:“在未来的 100 年里,人工智能将超越任何一种人工力量,将人类引领到一个前所未有的时代。” 确实如此,犹如历史上蒸汽机、电力、计算机和互联网等通用技术一样,近20年来&a…...
linux 实用命令搜集 —— 筑梦之路
1. xargs命令 # 找出 / 目录下以 .conf 结尾的文件,并进行文件分类find / -name *.conf -type f -print | xargs file# 找出文件并打包find / -name *.conf -type f -print | xargs tar cjf test.tar.gz 2. 查找内存使用量较高的进程 ps -aux | sort -rnk 4 | he…...
08-Docker-网络管理
Docker 在网络管理这块提供了多种的网络选择方式,他们分别是桥接网络、主机网络、覆盖网络、MACLAN 网络、无桥接网络、自定义网络。 1-无桥接网络(None Network) 当使用无桥接网络时,容器不会分配 IP 地址,也不会连…...
【VS Code】使用 VS Code 登陆远程服务器上的 Docker 容器
以下命令默认已经构建了一个 Docker Image。 # 在服务器上启动 docker (-p 端口映射,用于后续的 ssh 连接) docker run -itd -v /mnt/mount/:/home -p 8124:22 --name container-name --gpus all image-name# 进入容器中 docker exec -it container-name /bin/bas…...
用Python做数据分析之数据统计
接下来说说数据统计部分,这里主要介绍数据采样,标准差,协方差和相关系数的使用方法。 1、数据采样 Excel 的数据分析功能中提供了数据抽样的功能,如下图所示。Python 通过 sample 函数完成数据采样。 2、数据抽样 Sample 是进行…...
智慧工地建造平台源码、智慧化工地云平台源码
概述:智慧工地管理平台充分运用数字化技术,聚焦施工现场岗位一线,依托物联网、互联网、AI等技术,围绕施工现场管理的人、机、料、法、环五大维度,以及施工过程管理的进度、质量、安全三大体系为基础应用,实…...
Spring Cloud Alibaba中Nacos的安装(Windows平台)以及服务的发现
Spring Cloud Alibaba中Nacos的安装(Windows平台)以及服务的发现 下载安装Nacos解压启动验证是否启动搭建一个简单的Spring Cloud Alibaba项目Spring Cloud Alibaba 以及 Nacos的引入如何选择对应的版本 服务的注册Nacos相关组件的说明 下载安装Nacos G…...
QR码应用实战:Spring Boot与ZXing完美结合
🎏:你只管努力,剩下的交给时间 🏠 :小破站 QR码应用实战:Spring Boot与ZXing完美结合 前言第一: 介绍QR码和ZXing第二:springboot整合zxing添加ZXing依赖生成二维码生成条形码 前言 …...
Leetcode刷题详解——两两交换链表中的节点
1. 题目链接:24. 两两交换链表中的节点 2. 题目描述: 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 …...
Openssl数据安全传输平台019:外联接口类的封装以及动态库的制作 - Bug未解决,感觉不是代码的问题
文章目录 1 外联接口1.1 接口类的封装1.2 共享内存与配置文件 2 json格式配置文件的定义2.1 共享内存中存储的节点结构2.2 服务器端配置文件2.3 客户端配置文件2.4 改进配置文件 3 共享内存类修改4 将接口打包成库(静态/动态)4.1 相关的指令4.1.1 静态库4.1.2 动态库 4.2 外联接…...
YOLO目标检测——安全帽佩戴检测数据集【含对应voc、coco和yolo三种格式标签】
实际项目应用:安全帽佩戴检测数据集可以用于实时检测工作人员是否按照要求佩戴了安全帽,以保障他们的安全数据集说明:安全帽佩戴检测数据集,真实场景的高质量图片数据,数据场景丰富,图片分为带头盔和没带头…...
P4345 [SHOI2015] 超能粒子炮·改 题解---------Lucas定理
题面: 题目 题意概括: T T T 次询问,每次给出 n , k n,k n,k,求 ∑ i 0 k C n i % 2333 \sum_{i 0}^{k} C_{n}^{i} \ \% \ 2333 ∑i0kCni % 2333。 1 ≤ T ≤ 1 0 5 , 1 ≤ n , k ≤ 1 0 18 1\leq T \leq10^5…...
http代理和ip代理的区别,代理IP带来了哪些好处?
随着互联网的快速发展,代理IP和HTTP代理已成为网络爬虫、网络营销、数据抓取等领域中不可或缺的一部分。但是,很多人在使用代理IP和HTTP代理时并不清楚两者的区别,以及代理IP所带来的好处。本文将详细介绍这两者之间的差异,以及代…...
浅谈电动汽车充电桩检测技术的实现
叶根胜 安科瑞电气股份有限公司 上海嘉定 201801 摘要: 关键词:电动直流和交流充电桩是我国电动汽车充电桩中运行量较大的一种。为了保持正常运行和使用,应高度重视检测、运行和维护工作。因此,有关部门应做好充电桩的检测工作…...
20 分钟搭建一个串流服务器
步骤1:准备Nginx RTMP容器 首先,您可以使用官方的Nginx RTMP Docker镜像来创建Nginx RTMP容器。运行以下命令: docker run -d -p 1935:1935 --name nginx-rtmp tiangolo/nginx-rtmp 这将在后台运行Nginx RTMP容器,将本地1935端…...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
蓝桥杯 冶炼金属
原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
VisualXML全新升级 | 新增数据库编辑功能
VisualXML是一个功能强大的网络总线设计工具,专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑(如DBC、LDF、ARXML、HEX等),并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...
如何在Windows本机安装Python并确保与Python.NET兼容
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...
