题解 P1295 [TJOI2011] 书架
1.题解 P3204 [HNOI2010] 公交线路2.题解 P1081 [NOIP2012 提高组] 开车旅行3.题解 P1477 [NOI2008] 假面舞会4.题解 P5234 [JSOI2012] 越狱老虎桥5.题解 P6544 [CEOI2014] Cake6.题解 P4041 [AHOI2014/JSOI2014] 奇怪的计算器7.题解 P4798 [CEOI2015 Day1] 卡尔文球锦标赛8.题解 P4799 [CEOI2015 Day2] 世界冰球锦标赛
9.题解 P1295 [TJOI2011] 书架
10.题解 P6281 [USACO20OPEN] Social Distancing S11.题解 P1190 [NOIP2010 普及组] 接水问题12.题解 P3976 [TJOI2015] 旅游13.题解 P8096 [USACO22JAN] Drought G14.题解P7302 [BZOJ2131][NOI1998] 免费的馅饼15.题解 [BZOJ3307] P4556 [Vani有约会]雨天的尾巴 /【模板】线段树合并16.题解 [BZOJ3339] P4137 Rmq Problem / mex17.题解 [SP179][BZOJ2919][Poi1998]Word equations18.题解 P5930 [POI1999] 降水19.题解 BZOJ2720: [Violet 5]列队春游20.题解P3830 [SHOI2012]随机树21.题解 P4755 Beautiful Pair22.题解 P9229 扩展九连环23.题解 P7165 [COCI2020-2021#1] Papričice24.题解 P7169 [eJOI2020 Day1] Exam25.题解「JOI 2014 Final」IOI 馒头26.题解 P9911 [COCI 2023/2024 #2] Kuglice27.题解 P6356 [COCI2007-2008#3] CUDAK28.题解 P7309 [COCI2018-2019#2] Kocka29.题解 P6548 [COCI2010-2011#2] IGRA30.题解 P6491 [COCI2010-2011#6] ABECEDA题意
给出一个长度为 ~实际上就是简化题意~)。
分析
这是一个区间划分问题,自然可以想到使用 DP 解决此题。
切分( )
写这种题毕竟要从暴力打起,我们用
f[0]=0; for(int i=1; i<=n; ++i) { int mx=0; f[i]=INF; for(int j=i; j; --j) { if(qzh[i]-qzh[j-1]>m) break; mx=max(mx,a[j]); f[i]=min(f[i],f[j-1]+mx); } }
时间复杂度:
虽然切的是 30 分,但是却可以拿到 56 分,在开了 O2 后还可以拿到 77 分的高分,(如果是比赛已经可以放弃了)。
正解
我们显然是要优化内层的循环。
动态规划的一个重点就是继承,
令当前需要处理的节点为
显然
接下来就是解决在
我们仔细观察
这也就表示,我们的
归纳一下,我们想要实现:区间的查询维护答案,区间修改维护
为了维护最大值的变化,我们使用一个单调递减的单调栈,这样我们可以实现阶梯型的修改了。
tree.build(1,1,n+1); f[0]=0; tree.change(1,1,n+1,1,a[1]); int it=1; for(int i=1; i<=n; ++i) { while(top&&a[st[top]]<=a[i]) { tree.change(1,1,n+1,st[top-1]+1,st[top],a[i]-a[st[top]]); --top; } while(it<=i&&qzh[i]-qzh[it-1]>m) ++it; st[++top]=i; f[i]=tree.query(1,1,n+1,it,i); tree.change(1,1,n+1,i+1,f[i]+a[i+1]); } cout<<f[n];
时间复杂度:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?