题解
「POI2014」PTA-单调队列
· ✏️ 473 words · ☕ 1 mins read

给定 $n$ 个点的高度,规定从 $1$ 点出发,跳到比高度小于当前点的点不消耗体力,否则消耗一点体力,最后到达 $n$ 点。

$q$ 次询问,每次询问有一个步伐限制 $k$ ,求最少耗费的体力。


「TJOI2017」DNA-后缀数组
· ✏️ 784 words · ☕ 2 mins read

加里敦大学的生物研究所发现了决定人喜不喜欢吃藕的基因序列 $S$ ,有这个序列的碱基序列就会表现出喜欢吃藕的性状,但是研究人员发现对碱基序列 $S$ ,任意修改其中不超过 $3$ 个碱基,依然能够表现出吃藕的性状。现在研究人员想知道这个基因在 DNA 链 $S0$ 上的位置。所以你需要统计在一个表现出吃藕性状的人的 DNA 序列 $S0$ 上,有多少个连续子串可能是该基因,即有多少个 $S0$ 的连续子串修改小于等于三个字母能够变成 $S$ 。


「CQOI2016」手机号码-数位dp
· ✏️ 785 words · ☕ 2 mins read

手机号码是一个有 $11$ 位且不含前导 $0$ 的数。满足条件手机号码的必须同时满足:号码中出现至少 $3$ 个相邻的相同数字;号码中不能同时出现 $8$ 和 $4$ 。

给定两个数 $L$ 和 $R$ ,统计出 $[L,R]$区间内所有满足条件的手机号码的个数。 $L$ 和 $R$ 都是符合定义的手机号码。


「ZJOI2010」数字计数-数位dp
· ✏️ 689 words · ☕ 2 mins read

给定两个正整数 $a$ 和 $b$ ,求在 $[a,b]$ 中的所有整数中,每个数码(digit)各出现了多少次。


「JSOI2016」最佳团体-树上背包+0/1分数规划
· ✏️ 690 words · ☕ 2 mins read

JSOI 信息学代表队一共有 $N$ 名候选人,这些候选人从 $1$ 到 $N$ 编号。方便起见,JYY 的编号是 $0$ 号。每个候选人都由一位编号比他小的候选人$R_i$推荐。如果 $R_i = 0$ ,则说明这个候选人是 JYY 自己看上的。

为了保证团队的和谐,JYY 需要保证,如果招募了候选人 $i$,那么候选人 $R_i$ 也一定需要在团队中。当然了,JYY 自己总是在团队里的。每一个候选人都有一个战斗值 $P_i$ ,也有一个招募费用 $S_i$。JYY 希望招募 $K$ 个候选人(JYY 自己不算),组成一个性价比最高的团队。也就是,这 $K$ 个被 JYY 选择的候选人的总战斗值与总招募费用的比值最大。


「NOI2010」能量采集-简单数学
· ✏️ 561 words · ☕ 2 mins read

给定两个整数 $n,m$ ,对于平面上的整点 ${(x,y)|x \in [1,n],y \in [1,m],x,y \in \mathbb Z}$ 。若 $(x,y)$ 与 $(0,0)$ 的连线上有 $k$ 个整点(不包括 $(0,0),(n,m)$ ),则产生的贡献为 $2k+1$ 。求所有满足条件的点的贡献总和。


「NOI2014」魔法森林-LCT
· ✏️ 1210 words · ☕ 3 mins read

给定一个 $n$ 个点 $m$ 条边的无向图,每条边有两个权值 $a_i,b_i$ 。请你找到一条从 $1 \rightarrow n$ 的道路,令道路上所有边的集合为 $S$ ,使 $ans = \max(a_i)+\max(b_j),i,j \in S$ 最小,求出这个最小值 $ans$ 。


「SCOI2015」小凸玩密室-树形dp
· ✏️ 1774 words · ☕ 4 mins read

小凸和小方相约玩密室逃脱,这个密室是一棵有 $n$ 个节点的完全二叉树,每个节点有一个灯泡。点亮所有灯泡即可逃出密室。

每个灯泡有个权值 $a_i$ ,每条边也有个权值 $b_i$ 。点亮第 $1$ 个灯泡不需要花费,之后每点亮 $1$ 个新的灯泡 $v$ 的花费,等于上一个被点亮的灯泡 $u$ 到这个点 $v$ 的距离 $D _ {u,v}$ ,乘以这个点的权值 $a_v$ 。在点灯的过程中,要保证任意时刻所有被点亮的灯泡必须连通,在点亮一个灯泡后必须先点亮其子树所有灯泡才能点亮其他灯泡

请告诉他们,逃出密室的最少花费是多少。


「CQOI2011」动态逆序对-CDQ分治
· ✏️ 973 words · ☕ 2 mins read

对于序列 $A$ ,它的逆序对数定义为满足 $i<j$ ,且 $A_i>A_j$ 的数对 $(i,j)$ 的个数。
给出一个 $1$ 到 $n$ 的排列,按照某种顺序依次删除 $m$ 个元素,你的任务是在每次删除一个元素之前统计整个序列的逆序对数。


「ZJOI2013」K大数查询-整体二分
· ✏️ 941 words · ☕ 2 mins read

有 $N$ 个位置, $M$ 个操作。

操作有两种:

  • 如果是 1 a b c 的形式表示在第 $a$ 个位置到第 $b$ 个位置,每个位置加入一个数 $c$ ;
  • 如果是 2 a b c 形式,表示询问从第 $a$ 个位置到第 $b$ 个位置,第 $c$ 大的数是多少。

「模板」陌上花开-CDQ分治+树状数组
· ✏️ 1469 words · ☕ 3 mins read

有 $n$ 朵花,每朵花有三个属性:花形( $s$ )、颜色( $c$ )、气味( $m$ ),用三个整数表示。显然,两朵花可能有同样的属性。

定义一朵花 $A$ 比另一朵花 $B$ 要美丽,当且仅当 $S_a\geq S_b$ , $C_a\geq C_b$ , $M_a \geq M_b$ 。定义一朵花的等级是它拥有的美丽能超过的花的数量。

求出每个等级的花的数量。


「HAOI2009」毛毛虫-树形dp
· ✏️ 380 words · ☕ 1 mins read

对于一棵树,我们可以将某条链和与该链相连的边抽出来,称其为一个“毛毛虫”。求在这个树中点数最多的毛毛虫的点数。

$n < 300000$


「LNOI2014」LCA-树链剖分-差分
· ✏️ 933 words · ☕ 2 mins read

给出一个 $n$ 个节点的有根树。有 $q$ 次询问,每次询问给出 $l,r,z$ ,求 $\sum _ {l \leq i \leq r}dep[LCA(i,z)]$ 。


「SCOI2013」多项式的运算-Splay
· ✏️ 1023 words · ☕ 3 mins read

维护一个动态的关于 $x$的无穷多项式 ,这个多项式初始时对于所有 $i$ 有 $a_i = 0$

$$
f(x)=a_0x^0+a_1x^1+a_2x^2…
$$

操作者可以进行四种操作:

  • mul L R V 表示将 $x^L$ 到 $x^R$ 这些项的系数乘上某个定值 $v$ ;

  • add L R V 表示将 $x^L$ 到 $x^R$ 这些项的系数加上某个定值 $v$ ;

  • mulx L R 表示将 $x^L$ 到 $x^R$ 这些项乘上x变量;

  • query V 求 $f(v)$ 的值。

操作集中在前三种,第四种操作不会出现超过 $10$ 次。


「SDOI2014」旅行-树链剖分+动态开点线段树
· ✏️ 827 words · ☕ 2 mins read

给定一棵 $n$ 个节点的树,对于每个点都有两个权值 $w_i,c_i$ 。

存在 $m$ 个操作,分为4类。

  • CC x c”:将 $c_x$ 更改为 $c$ ;

  • CW x w”:将 $w_x$ 更改为 $w$ ;

  • QS x y”:对所有满足在 $x$ 到 $y$ 路径上且 $c_i = c_x = c_y$ 的节点 $i$,求 $\sum w_i$ ;

  • QM x y”:对所有满足在 $x$ 到 $y$ 路径上且 $c_i = c_x = c_y$ 的节点 $i$ ,求 $\max(w_i)$ ;

对于后两个操作,保证 $c_x = c_y$ 。