初三选拔模拟赛题解

给个正常的题解以正视听 . 不过说好的普及难度呢?

如果有问题请指出 .

T2

注意到答案一定可以取到最小区间的长度 len,一种方案是按 0len1 循环填 .

T3

大致有两种做法:

  • 维护每个手指的次数 ci 和占用的键数 ti,按 citi+1 排序放堆里每次取最优的拿出来 .
  • 二分答案 t,每次判断 cit 之和能否达到总键数 .

T4

排序后把 a2n1a1,an 中最远的那个连边,然后连 a1an 即可 .

正确性可以考虑 Boruvka 算法的流程,先连 a2n 就是这个结果,最后剩两个连通块肯定是 a1,an 连 .

T5

dpl,r 表示区间 [l,r] 的答案,转移有以下几种:

  • 如果 sl,sr 是匹配的括号,则 dpl,rmindpl+1,r1 .
  • 对左边或者右边加一个括号构成匹配,dpl,rminmin{dpl+1,r,dpl,r1}+1 .
  • 拆成两部分的答案拼起来,dpl,rminmink{dpl,k+dpk+1,r} .

具体就是按照合法括号序列的构成转移 . 时间复杂度 Θ(n3) .

T6

线段树维护历史版本和,可以看吉司机论文 .

写一个看到的最简单的做法,线段树维护向量 [hsumsum1]T 表示历史和、和、1 . 对于一次区间加 v 可以表示为矩阵乘法:

[hsumsum1]=[11v01v001][hsumsum1]

可能需要卡常,我不知道 . 时间复杂度 O(n+qlogn) .

T7

考虑横着差分一次,那么就变成一个竖线加一个数,一条斜线减一个数 . 对每列每个对角线开一个树状数组分别维护即可 .

时间复杂度 Θ(n2+qlogn) .

upd. 把树状数组换成差分即可去掉 log .

APJ 之言可谓是切中了

红 - 绿 - 橙 + 蓝 .

posted @   yspm  阅读(262)  评论(5编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
历史上的今天:
2022-01-21 走迷宫 简要题解
😅​
点击右上角即可分享
微信分享提示