[loj#2868][线段树][笛卡尔树][DP]会议

微信小程序导航栏滑动一定距离后固定到顶部 接上一篇文章的内容,通常在一个页面中部会有一个导航栏查看不同的内容,这篇文章旨在实现在页面下滑的过程中导航栏自动固定到顶部以便我们阅读过程中的切换。 下滑一段距离后自动固定到顶部 首先,思考这个功能应该是怎么实现的: 在页面下滑的过程中,我们希望系统应当能识别下滑了多少距离,当原本的导航栏逐渐被遮住以后(遮住意味着下滑了特定距离),触发这个功能,执行另一种样式,将导航栏固定在页面顶端,同时如果我们将页面往上滑,系统能识别到原来的导航栏能露出来了(即距离顶端的高度小于一个特定的值),这时候又执行最初的样式 阅读详情

Description

传送门

题解

不想写了所以下面没有代码
看题解发现我第一步就自闭了…感觉我在这种题从来都不会想DP的事情…
设一个 f [ i ] [ j ] f[i][j] f[i][j]表示 [ i , j ] [i,j] [i,j]的答案是什么
如果我们找到了这个区间的最大值位置 p p p,那么显然要不你就是让人们全部走到最大值的左边,要不就是走到最大值的右边
那么转移就是
f [ i ] [ j ] = m i n ( f [ i ] [ p − 1 ] + h [ p ] ∗ ( r − p + 1 ) , f [ p + 1 ] [ j ] + h [ p ] ∗ ( p − i + 1 ) ) f[i][j]=min(f[i][p-1]+h[p]*(r-p+1),f[p+1][j]+h[p]*(p-i+1)) f[i][j]=min(f[i][p−1]+h[p]∗(r−p+1),f[p+1][j]+h[p]∗(p−i+1))
注意到转移与最大值相关,考虑笛卡尔树
又发现是类似笛卡尔树的分治结构,确认过眼神就是你了
搜笛卡尔树上的每个点,如果他在 [ L i , R i ] [L_i,R_i] [Li​,Ri​]是最大值,那么我们需要保存两种值
f [ L i , L i ] , f [ L i , L i + 1 ] , . . . , f [ L i , R i ] f[L_i,L_i],f[L_i,L_{i}+1],...,f[L_i,R_i] f[Li​,Li​],f[Li​,Li​+1],...,f[Li​,Ri​]以及
f [ R i , R i ] , f [ R i − 1 , R i ] , . . . , f [ L i , R i ] f[R_i,R_i],f[R_{i}-1,R_i],...,f[L_i,R_i] f[Ri​,Ri​],f[Ri​−1,Ri​],...,f[Li​,Ri​]
对于转移,以第一种值为例讨论
在 p p p左边的直接赋值了,仅讨论在右边的情况
那么就是 m i n ( f [ p + 1 ] [ u ] + ( p − i + 1 ) ∗ h [ p ] , f [ i ] [ p ] + ( u − p + 1 ) ∗ h [ p ] ) min(f[p+1][u]+(p-i+1)*h[p],f[i][p]+(u-p+1)*h[p]) min(f[p+1][u]+(p−i+1)∗h[p],f[i][p]+(u−p+1)∗h[p])
发现转移具有单调性,即第一种是一段,第二种又是一段
二分这个分界点
现在所需要的就是支持区间赋值为一个一次函数,区间增加一个值,以及单点查询
这个线段树即可
以后这种区间询问的题,不要老想一些数据结构什么的,其实DP也是可做的…

代码以后或许会补??

运算放大器多谐振荡器设计实战:从施密特触发器到波形生成 本文详细介绍了运算放大器在多谐振荡器设计中的实战应用,涵盖施密特触发器的迟滞比较原理、非稳态振荡器的自激机制以及单稳态和双稳态电路的设计技巧。通过具体案例和参数计算,帮助工程师掌握波形生成与信号处理的核心技术,提升电路设计效率与稳定性。 阅读详情

相关推荐

别再乱设阻尼了!Abaqus动力分析中瑞利阻尼的α和β到底怎么算?

本文深入解析Abaqus动力分析中瑞利阻尼参数α和β的科学计算方法,帮助工程师准确设置阻尼参数以提升仿真精度。详细介绍了基于模态阻尼比的经典计算方法和多模态优化法,并结合工程案例演示参数设置流程,避免常见的阻尼设置误区。

weixin_42634811的博客 731

[笛卡尔树][树形dp]Yet Another Array Counting Problem Codeforces1748E

设dp[i][j]表示i结点值取j时子树中的方案数,设l[i]表示i结点左儿子,r[i]表示i结点右儿子,若两儿子均存在,那么dp[i][j] = sum(dp[l[i]][j-1]*dp[r[i]][j]), i∈[1, m],若只有左儿子存在,那么dp[i][j] = sum(dp[l[i]][j-1]), i∈[1, m],若只有右儿子存在,那么dp[i][j] = sum(dp[r[i]][j]), i∈[1, m],若是叶子结点,那么dp[i][j]均等于1。

Cloth的博客 984

算法交易VWAP&TWAP

VWAP的一些算法模型细节参考博客地址http://blog.sina.com.cn/s/blog_ad47bc5b01014elx.html 日内交易量预测模型http://blog.sina.com.cn/s/blog_976461170102v43p.html 算法交易其实主要是用在基金公司、券商量化比较多。例如我已经选好股,要大量买入,但是单凭交易员的操作海量单而且要完

shulixu的博客 1万+

【YBT2023寒假Day12 B】仰望星空(DP)(线段树)(笛卡尔树)

有一个 n*n 的网格,第 i 列下面的 ai 个点都是障碍。 然后又一些不是障碍的地方有特殊点,删掉它有费用。 要你用最小费用使得不存在两个特殊点在一个矩阵中且矩阵中没有障碍。

欢迎您的光顾awa 580

数据中心——Vxlan基本概念1

东西流量指的就是横向流量-------例如:服务器与服务器之间交换流量南北流量指的就是纵向流量-------例如:客户端和服务器之间的流量以下主要是讲解业务平面的网络架构(一般业务平面就需要用到专用的数据中心交换机)

m0_49864110的博客 1万+

抄表程序员的DLMS/COSEM协议实战:从抓包到解析,手把手教你读懂IEC62056报文

本文深入解析DLMS/COSEM协议在智能电表通信中的应用,从报文捕获到数据解析的全流程实战指南。涵盖HDLC帧解析、应用层连接建立、数据请求/响应解码等核心内容,并提供Wireshark配置、OBIS代码速查表等实用工具,帮助开发者快速掌握IEC62056标准下的电能表通信技术。

weixin_29178069的博客 299

【笛卡尔树+DP】随机的排列

题目 Description Input Output Sample Input 5 1 2 4 1 5 3 2 Sample Output 2 2 Data Constraint 思路 我们可以先对序列建立一棵笛卡尔树。 建法就是每一次找到区间中的最大值,然后把这个点作为根。这样这个点的左子树就是以这个点切开的左区间,而右子树就是以这个点切开的右区间。 可以发现,一个点连边的点的集合为这个点左子树的最右侧的一条链和这个点右子树最靠左的一条链。这个时候就可以DP了。 考虑修改,因为数据是随机的,所

Brute♂force 606

人脸情绪识别(使用深度学习和OpenCV)

基于opencv与深度学习的人脸情绪识别系统

mx0390304的博客 8251

单调栈(笛卡尔树 区间DP)

【转载】作者:GuxueAkioi 学习之用,为防丢失,故此转载,万望见谅,若有侵权,联系删除。 题意:一开始有一个长度为 n 的未知排列。给出一个序列 a,其中 a[i] 表示单调栈在第 i 个数入栈后的 size 大小,a[i] = -1 表示 size 大小未知,根据序列 a 输出可能的初始排列的方案数。答案对 1e9+7 取模。 规模:T组数据,T<=20,1<=n<=100。 分析:首先考虑没有-1的情况,根据单调栈的性质我们不难发现最右边的 size==1 的位置其实.

weixin_63294643的博客 294

6.2 磁悬浮轴承:软件架构与实现

本文系统阐述了磁悬浮轴承控制系统的软件架构与实现方法。采用分层架构设计,包括硬件抽象层、实时控制内核、控制算法层和应用层,确保系统实时性和可靠性。重点分析了电流环、位置环等关键控制任务的调度策略,比较了不同硬件平台(DSP、ARM、FPGA)的软件实现方案。强调模块化设计、配置化管理等工程实践,并详细介绍了从算法仿真到系统联调的完整开发流程。最后指出严格的测试验证是保证系统性能的关键,需通过多阶段测试评估起浮时间、稳态精度等核心指标。

技术工作者 753

学Simulink——基于Simulink的PMSM直接转矩控制(DTC)与SVPWM对比

(如SVM-DTC),将一个控制周期Tc​分为两部分:前Ton​用有效矢量,后Toff​用零矢量,通过调节Ton​/Tc​减小脉动。:根据ψs​扇区(6个)、Te误差(±滞环带)、ψs​误差(±滞环带)选择8个基本电压矢量(6有效矢量+2零矢量)。:低速时需用电流模型(ψs​=Ls​is​+ψf​),高速时用电压模型(es​=ωψf​),避免纯积分漂移;:基于us​=Rs​is​+Ls​dtdis​​+es​(es​为反电动势),用电压模型估算ψs​;

MHD0815的博客 338

好题分享--笛卡尔树上dp

因为我们要从最上层开始考虑,所以我们考虑用小根堆从左到右建树,树根就是最下层的格子,叶子节点就是最顶层的格子,左右就是格子顺序。其次,对于一个n*m的矩阵,我们的选择方式有C(n,k)*C(m,k)*k!但不得有任意两个数在同一行或者同一列。第二行包含 n 个整数,第 i 个整数表示从左至右第 i 列的层数。如图,给定一个由 n 列组成的表格,每一列的底部都是对齐的。输入第一行两个整数 n,k,表示表格的列数和相同数字的数量。首先,考虑对于一个k*k的矩阵,我们的选择方式有k!的填写是合法的,因为这两个。

m0_55473582的博客 477

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Codeforces1913 D. Array Collapse(笛卡尔树+树上dp)

【代码】Codeforces1913 D. Array Collapse(笛卡尔树+树上dp)

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 887

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

CF1580B Mathematics Curriculum(笛卡尔树、树形dp)

巧妙的转化

BUG_Creater_jie的博客 663

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

笛卡尔树的妙用

前言 笛卡尔树,与Treap类似,每个节点拥有两个值,key值和val值。key值是这个节点本身的大小值,在一颗treap中满足二叉查找树的性质,而val值则是一个随机值,学过treap的同学都知道,这个val值是拿来使得树的层高是期望log的,val值满足堆的性质,这里以小根堆为例讲解(当然大根堆不会有任何问题)。 应用 一般笛卡尔树都被用来建一颗treap,复杂度为O(n)的,n表示插入...

Michael_Li的博客 4788

[笛卡尔树 树形DP] ICPC 2016 Hong Kong G. Scaffolding

你要搭一个一共nn列的脚手架,第ii列放HiH_i根竹子。 你每次只能搬m根竹子上脚手架,并且只能在脚手架左右和向上移动。同时如果左边右边和上面没有竹子,也可以放一根竹子在那里。 问最少需要多少次搬完。 n≤100000n\leq100000直接建笛卡尔树 考虑从高往底拆 然后就可以树形DP了 fif_i表示拆子树ii到他的father的高度需要的次数 gig_i可以顺带算出表示拆了后还剩

雯舞 2132

笛卡尔树

笛卡尔树性质: 1.树中的元素满足二叉搜索树性质,要求按照中序遍历得到的序列为原数组序列(左儿子的key值小于自己,右儿子的key值大于自己) 2.树中节点满足堆性质,节点的val值要大于其左右子节点的val值 整个过程的第一步是把所有点按照key排序,然后从一个节点开始,按key递增顺序依次插入节点。想象一下,假设已经有一棵笛卡尔树,那么现在我们要插入一个新的节点,而这个节点比

十分残念的博客 1167

[IOI2018]会议——分治+线段树

题目链接: [IOI2018]meetings 题目大意:有$n$座山峰,每座山峰有一个高度,有$q$次询问,每次需要确定一个开会山峰使$[l,r]$所有山峰上的人都前往开会山峰,一个山峰的人去开会的代价为从这个山峰到开会山峰区间内山峰高度的最大值,对于每次询问求最小代价和。 还是按照编号都从$1$开始讲。 可以发现对于一个询问如果确定了开会地址那么答案只和每个点到开会点区间最大值有关。 ...

weixin_34185512的博客 189

todotodo

from:

皮皮blog 5612

jzoj5342 赤壁情 (序列插入型dp,笛卡尔树新奇姿势dp)

题面很玄幻的一题dp. 现在有一块一块的子串,他们的相对顺序是已知的但最终一定不相邻 (也就是说中间至少有一个数)考虑从小到大插入数字,每一个数字有3种基本转移 1. 在某个空隙新建一块, 2. 并入某块(放最左或最右)。 3. 合并相邻两块贡献系数好算,比如说并入一块那么系数就是0,假如新开系数就是-2 (因为可以知道旁边是比他大的还是比他小的)但是有一个问题,边界怎么办? 所以要开两个特

一位蒟蒻的小博客 1109

20200309 DP笔记【杂题,笛卡尔树】

杂题: AGC 034 E CF 908 G 分开计算每个数字的贡献,即∑d=19d∗val(d)\sum_{d=1}^9d*val(d)∑d=19​d∗val(d),其中val(d)val(d)val(d)是∑10i\sum10^i∑10i的形式,直接数位DP需要知道大于和等于ddd的个数,复杂度较高。改为求∑d=19∑i=d9val(i)\sum_{d=1}^9\sum_{i=...

Master.Yi的博客 488

正睿2019省选十连测day3T3(笛卡尔树,dp)

题面描述 有一个11到nn的排列p1,p2,p3,…,pn,你会对它进行若干轮操作,每一轮操作,你会保留序列中极大的数,也就是说对于每个数字,如果它比相邻的数字都大,那么会被保留下来。比如一个排列(3,2,5,1,4,6),经过一轮操作之后序列变成(3,5,6),第二轮操作之后序列变成(6),经过恰好2轮之后序列里只有一个元素。 请问有多少个长度为n的序列,经过恰好k次操作之后,序列里只有一个元...

a1035719430的博客 437

【IOI2018】会议【笛卡尔树】【dp】【线段树】

题意:长度为nnn的序列,qqq次询问,每次给定一个区间,钦定区间中的一个位置xxx,使得区间所有点 与xxx之间的最大值(含端点) 之和 最小,输出最小值。 n,q≤7.5×105n,q\leq7.5\times10^5n,q≤7.5×105 神仙题,不愧是IOI 首先有一个O(n2)O(n^2)O(n2)的 dp f(l,r)=min⁡{f(l,k−1)+(r−k+1)hk,(k−l+1)hk+f(k+1,r)}f(l,r)=\min\{f(l,k-1)+(r-k+1)h_k,(k-l+1)h_k+f(

Lstdo的博客 617

[loj2255][SNOI2017]炸弹——线段树优化建图+缩点+DAGDP

题目大意: 在一条直线上有 N 个炸弹,每个炸弹的坐标是 Xi,爆炸半径是 Ri,当一个炸弹爆炸时,如果另一个炸弹所在位置 Xj 满足: Xi−Ri≤Xj≤Xi+Ri,那么,该炸弹也会被引爆。 现在,请你帮忙计算一下,先把第 i 个炸弹引爆,将引爆多少个炸弹呢? 思路: 简单地在序列上面建图然后DAG DP即可,注意要先缩点。 但是发现边数可能会有n2n2n^2,于是利用线段树来...

ylsoi的博客 478

[loj#121][线段树分治][并查集]动态图连通性

Description 动态加边删边维护图连通性 n&lt;=5000,m&lt;=500000 允许离线 题解 wori这种模板都不会写了吗… 预处理每条边在什么时候出现什么时候消失 根据时间建线段树 线段树每个节点开一个vector存在他管理这段时间里一直存在的边 把边一开始插入就可以知道这个线段树长什么样了 然后开始线段树分治,dfs这棵线段树 进去的时候就把边全部插入出来就全部删除 ...

Rose_max的博客 785

[NOIP模拟10.10][线段树维护树的直径]联盟

Description G 国周边的n 个小国家构成一个联盟以抵御G 国入侵, 为互相支援, 他们建立了n − 1 条双向通路, 使得任意两个国家可以经过通路相互到达. 当一个国家受到攻击时, 所有其它国家都会沿着最短路径前往这个国 家进行支援, 经过每条通路所需的时间均为1. 定义一个国家的危险程度为 所有国家全部赶到需要的最短时间, 联盟的危险程度为所有国家的危险程度 的最大值. 为了降低危...

Rose_max的博客 741
上一篇: 20190314模拟
下一篇: PA2014部分题解
Rose_max
博客等级 码龄10年 97粉丝 610原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值