bzoj1010: [HNOI2008]玩具装箱toy

英伟达Orin芯片:自动驾驶的标杆产品 英伟达Orin芯片是面向自动驾驶和边缘AI的高性能SoC,采用7nm工艺,单芯片算力达254TOPS(INT8),功耗45-55W。其硬件架构包含12核ARM CPU、Ampere GPU、专用DLA和PVA加速器,支持64GB LPDDR5内存,符合车规级ASIL-D安全标准。软件生态涵盖DRIVE OS、CUDA、TensorRT等工具链,提供全栈解决方案。Orin已被理想、蔚来等车企采用,主要竞争对手包括高通Snapdragon Ride和地平线征程系列。面试需重点掌握算力指标、异构计算架构、Tens 阅读详情

题面:P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京。他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中。P教授有编号为1...N的N件玩具,第i件玩具经过压缩后变成一维长度为Ci.为了方便整理,P教授要求在一个一维容器中的玩具编号是连续的。同时如果一个一维容器中有多个玩具,那么两件玩具之间要加入一个单位长度的填充物,形式地说如果将第i件玩具到第j个玩具放到一个容器中,那么容器的长度将为 x=j-i+Sigma(Ck) i<=K<=j 制作容器的费用与容器的长度有关,根据教授研究,如果容器长度为x,其制作费用为(X-L)^2.其中L是一个常量。P教授不关心容器的数目,他可以制作出任意长度的容器,甚至超过L。但他希望费用最小.

思路:O(n^2)的DP很容易:

令前i个玩具长度之和为sum[i],则f[i]=min(f[j]+(sum[i]-sum[j]+i-j-1-L)^2)

然后就是斜率优化了。

f[i]=f[j]+(sum[i]-sum[j]+i-j-1-L)^2

为了简化式子,令s[i]=sum[i]+i,m=s[i]-1-L;

所以f[i]=f[j]+(m-s[j])^2

f[i]=f[j]+m^2-2*m*s[j]+s[j]^2

f[j]+s[j]^2=2*m*s[j]+f[i]-m^2

这时我们就得到了一个形如y=kx+b的式子,其中k是与i有关的式子,x是关于j的式子,b是包含f[i]的式子。

我们要使f[i]最小或最大,只要求截距b最小或最大时的j就可以取到答案

这题中y=f[j]+s[j]^2 k=2*m x=s[j] b=f[i]-m^2

要使f[i]最小,那么就要使截距b最小,我们把状态抽象成点,观察图象

j和k两个点在斜率为2*m时哪个更优呢,当然是slope(j,k)<2*m时k更优,因为这题中查询的斜率递增,所以以后k也比j优


又因为这题x是递增的,所以我们用队列维护一下,slope(q[head],q[head+1])<2*m时,队头元素就可以删去了,删到不能删为止

加入一个新点i后我们就要考虑队列中那些点变得没有意义了,画图得知,对于队尾的点,slope(q[tail],q[tail-1])>slope(q[tail],i),那么队尾就没有意义了,此时我们就可以删去。


所以每次转移时只要找队头元素即可。

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
using namespace std;
const int maxn=50010;
int n,L,q[maxn];
ll sum[maxn],s[maxn],f[maxn],m;char ch;
double slope(int i,int j){return 1.0*(f[i]+s[i]*s[i]-f[j]-s[j]*s[j])/(s[i]-s[j]);}

void read(ll &x){
	for (ch=getchar();!isdigit(ch);ch=getchar());
	for (x=0;isdigit(ch);ch=getchar()) x=x*10+ch-'0';
}

int main(){
	scanf("%d%d",&n,&L);
	for (int i=1;i<=n;i++) read(sum[i]),sum[i]+=sum[i-1],s[i]=sum[i]+i;
	int head=0,tail=0;f[0]=q[0]=0;
	for (int i=1;i<=n;i++){
		m=s[i]-L-1;
		while (head<tail&&slope(q[head+1],q[head])<=2*m) head++;
		int j=q[head];f[i]=f[j]+(m-s[j])*(m-s[j]);
		while (head<tail&&slope(q[tail],q[tail-1])>=slope(i,q[tail])) tail--;
		q[++tail]=i;
	}
	printf("%lld\n",f[n]);
	return 0;
}


由异常的测试眼图引发的深入思考 信号测试中出现“双眼皮”的眼图测试效果,可能的导致因素总结如下:PCB通道阻抗设计不匹配,负载端出现严重反射;发射端采用了不当的信号预处理;接收器均衡处理不当;通道串扰严重... 基于以上的假设,本文就逐一分析下这些因素到底是如何对正常的信号眼图造成影响的。 阅读详情

相关推荐

从拆解图看懂空心杯电机:有刷 vs 无刷内部结构全解析(附DIY注意事项)

本文深入解析有刷与无刷空心杯电机的内部结构差异,通过高清拆解图展示关键部件工艺特点,并分享实用的维护技巧和检测方法。重点对比两种电机在效率、寿命和适用场景上的优劣,为DIY爱好者提供详细的注意事项和操作指南。

xgboost6farmer的博客 516

BZOJ 1010: [HNOI2008]玩具装箱toy

题目地址:http :// www . lydsy . com / JudgeOnline / problem . php ? id = 1010 题目大意:见原题。 算法分析:         设s[i]为c[i]的前缀和,f[i]表示第1个物品到第i个物品的最小代价。         易得DP方程为f[i]=min(f[j]+(s[i]-s[j]+i-j+1-l)^2)。

Charlie Pan's Blog 2306

机器学习西瓜书期末复习(2022HENU)

期末复习之机器学习 文章目录期末复习之机器学习第一章 绪论 第一章 绪论 机器学习的定义 机器学习致力于研究如何通过计算的手段,利用经验来改善系统自身的性能。 根据训练数据是否拥有标记信息,将学习任务分为监督学习和无监督学习。 监督学习 :分类和回归 线性回归、对数几率回归、决策树、支持向量机、贝叶斯分类器、神经网络 无监督学习:聚类 聚类算法: 原型聚类:(k均值,学习向量量化,高斯混合聚类);密度聚类(DBSVAN);层次聚类(AGNES)。降维。话题分析。图分

qq_46561559的博客 2万+

【bzoj1010】[HNOI2008]玩具装箱toy

PortalPS:为了证这个决策单调性。。推了我一张纸(蠢得要死,数学真的怀)!!! n²做法很容易:dp[i]=min(dp[j]+(i−j−1+sum[i]−sum[j]−L)²dp[i]=min(dp[j]+(i-j-1+sum[i]-sum[j]-L)² (20分) 令f[i]=sum[i]+i,c=1+L; 显然f[i]单调递增 ∴dp[i]=min(dp[j]+(f[i]−f[j

Heret1c 2754

ENU坐标系实战:5分钟搞定无人机导航中的站心坐标转换

本文针对无人机导航中GPS坐标与视觉感知不匹配的定位漂移问题,提供了基于ENU坐标系的实战解决方案。通过Python代码演示了如何快速、精准地实现地心地固坐标与站心坐标之间的转换,并详细解释了转换原理、精度对比及工程优化技巧,帮助开发者从根本上解决局部相对定位不准的难题。

mqtt6iot的博客 552

自动驾驶大模型---小米&华科的ORION端到端方案

本文介绍了小米汽车与华中科技大学联合开发的ORION自动驾驶端到端方案。该框架创新性地将视觉语言模型(VLM)与自动驾驶系统结合,包含QT-Former特征提取模块、大语言模型(LLM)推理模块和生成式规划器三大核心组件。通过视觉感知与语言理解的深度融合,ORION能更准确地理解人类指令并生成合理轨迹,同时提升系统的可解释性。实验证明,该方案在准确性、泛化能力和决策透明度方面均有显著优势。ORION框架为自动驾驶技术提供了新思路,有望推动行业向更安全、智能的方向发展。

智能汽车人的博客 2005

[bzoj1010][HNOI2008]玩具装箱toy——斜率优化+单调队列

题面: 蒟蒻的第一道斜率优化题目。 P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京。他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中。P教授有编号为1…N的N件玩具,第i件玩具经过压缩后变成一维长度为Ci.为了方便整理,P教授要求在一个一维容器中的玩具编号是连续的。同时如果一个一维容器中有多个玩具,那么两件玩具之间要加入一个单位长度的填充...

ylsoi的博客 249

互联网人提高效率必备软件合集

很多的时候我们解决不了问题,只是因为没有找到对的工具,实际上,很多好的工具就在那里,只是你不用而已。这点上,信息壁垒是一个很大的原因,因此我希望兄伙伴们多出去走走,不要只是局限在一个圈层;

zhonglunshun的专栏 3484

洛谷 P3195 [HNOI2008]玩具装箱TOY(斜率优化入门)

这是一道经典的斜率优化入门题,就用这题来作个总结好了 前言:斜率优化的思想其实和高中数学的线性规划有相似之处,因此建议没学过的同学先了解一下线性规划 首先提一下单调队列优化: 当dp方程为dp[i]=a[i]+b[j]dp[i]=a[i]+b[j]时,这个方程是O(n2)O(n^2)的 这时用单调队列可以将其优化为O(n)O(n),具体方法这里不再赘述 而dp方程为dp[i]=a[i]⋅...

hhz6830975的博客 567

MFC Tab Control控件完全指南:从基础使用到高级定制

本文详细介绍了MFC中TabControl控件的使用方法和高级技巧。主要内容包括:1) TabControl基础属性设置与绑定;2) 样式定制和外观自定义;3) 创建派生类实现扩展功能;4) 动态页面管理和子对话框控制;5) 高级功能如标签拖拽排序和右键菜单。通过完整代码示例,展示了从基本应用到复杂场景的实现方案,包括多标签页管理、自定义绘制、动态添加/删除标签等核心功能,为MFC开发者提供了全面的TabControl开发指南。

专注现代C++实战,从核心语法到高性能编程,助力开发者深入掌握系统级编程精髓。 257

基于深度学习YOLOv5的草莓成熟度检测系统详解(深度学习模型+UI界面+Python代码+训练数据集)

数据采集与预处理模块:负责收集草莓图像,并进行数据增强和标注。深度学习模型训练模块:使用YOLOv5模型进行草莓成熟度检测模型的训练。模型推理模块:加载训练好的模型,对输入图像或视频进行草莓成熟度检测。UI界面模块:提供用户交互界面,方便用户上传图像或视频进行成熟度检测。本文详细介绍了基于YOLOv5的草莓成熟度检测系统的构建过程,包括数据集的构建、模型的训练与推理、以及UI界面的设计。通过本文的指导,读者可以快速搭建一个高效的草莓成熟度检测系统,并应用于实际场景中。

斌擎科技 524

BZOJ1010: [HNOI2008]玩具装箱toy 斜率优化DP

1010: [HNOI2008]玩具装箱toy Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 9342  Solved: 3743 [Submit][Status][Discuss] Description   P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京。他使用自己的压缩器进行压 缩,其可

Oakley 673

MongoDB分布式事务实现:两阶段提交、日志复制与冲突解决

MongoDB分布式事务机制解析 本文深入剖析了MongoDB 4.0+版本的分布式事务实现原理,重点分析了其在跨文档/跨集合/跨分片场景下的数据一致性解决方案。核心内容包括: 底层机制:采用改进的两阶段提交协议,通过oplog日志复制实现无中心协调器的事务管理,结合WiredTiger存储引擎和锁机制保障ACID特性。 创新设计:将传统2PC的中心协调功能分散到Primary节点,利用oplog作为事务状态记录,实现自动故障恢复和60秒超时回滚机制。 性能优化:针对大事务、写冲突等常见问题,提出拆分微事务

数据知道的博客 1261

BZOJ 1010: [HNOI2008]玩具装箱toy【斜率优化】

1010: [HNOI2008]玩具装箱toy Time Limit: 1 Sec Memory Limit: 162 MB Description   P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京。他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中。P教授有编号为1…N的N件玩具,第...

aiweiluan5095的博客 145

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

BZOJ 1010: [HNOI2008]玩具装箱toy——斜率优化

BZOJ 1010 第二道斜率优化,对斜率优化有了新的理解。开心(大雾 这题的题面其实就是在说  斜率优化!斜率优化!斜率优化! 好吧就是道裸题 我们考虑更新f[i]时选择的节点 如果k比j更优 则有: f[j]+(j-i+sum[i]-sum[j]-L)^2 f[j]+(sum[i]-sum[j])^2-2*(i-j+L)*(sum

来自Fop_zz的辣鸡题解或教程 1008

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

bzoj 1010: [HNOI2008] 玩具装箱 toy [斜率优化dp] [动态规划]

1010: [HNOI2008]玩具装箱toyTime Limit: 1 Sec Memory Limit: 162 MB Submit: 9202 Solved: 3678Description  P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京。他使用自己的压缩器进行压 缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中。P教授有编号为1…N的N件玩具,第i件

C'est la vie. 1661

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

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

bzoj-1010: [HNOI2008]玩具装箱toy

同洛谷-P3195 [HNOI2008]玩具装箱TOY

xu0_zy的博客 350

BZOJ1010: [HNOI2008]玩具装箱toy

BZOJ1010: [HNOI2008]玩具装箱toy   Time Limit: 1 Sec   Memory Limit: 162 MB Description   P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京。他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中。P教授有编号为1...N的N件玩具,第i件玩具经过压缩后变成一维长度为C...

weixin_30408675的博客 98

bzoj 1010: [HNOI2008]玩具装箱toy

斜率优化还是用浮点数的写法好写啊,以后就这么写了,还不会错(因为斜率相等的情况对于斜率优化是无所谓的,所以说浮点数误差不会导致错误) #include <bits/stdc++.h> using namespace std; typedef long long LL; const int maxn = 50005; int C[maxn],q[maxn]; LL sum[maxn]...

ehdhg13455的博客 185
上一篇: bzoj1492: [NOI2007]货币兑换Cash
下一篇: bzoj2989&4170: 数列
thy_asdf
博客等级 码龄12年 16粉丝 186原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值