数据结构
「CQOI2015」任务查询系统-可持久化线段树
· ☕ 2 min read

超级计算机中的任务用三元组 $(S_i,E_i,P_i)$ 描述, $(S_i,E_i,P_i)$ 表示任务运行区间为 $[S_i,E_i]$ ,其优先级为 $P_i$ 。

给出 $n$ 个任务。随后给出 $m$ 个询问,第 $X_i$ 秒正在运行的任务中,优先级最小的 $K_i$ 个任务的优先级之和是多少。特别的,如果 $K_i$ 大于第 $X_i$ 秒正在运行的任务总数,则直接回答第 $X_i$ 秒正在运行的任务优先级之和。

强制在线。


「SDOI2008」洞穴勘测-LCT
· ☕ 2 min read

辉辉热衷于洞穴勘测。

辉辉有一台监测仪器可以实时将通道的每一次改变状况,并在辉辉手边的终端机上显示:

Connect u v代表监测到洞穴u和洞穴v之间出现了一条通道,Destroy u v代表监测到洞穴u和洞穴v之间的通道被毁。Query u v,代表向监测仪询问此时洞穴u和洞穴v是否连通。

保证无论通道怎么改变,任意时刻任意两个洞穴之间至多只有一条路径。

已知在第一条指令显示之前,洞穴群中没有任何通道存在。


「Luogu2617」Dynamic Rankings-树状数组-可持久化线段树
· ☕ 2 min read

给定一个含有 $n$ 个数的序列 $\{a_n\}$ ,回答询问或执行操作:

  • Q i j k ($1\leq i\leq j\leq n, 1\leq k\leq j-i+1$)表示询问$a[i],a[i+1]......a[j]$中第 $k$ 小的数。

  • C i t ($1 \leq i \leq n,0\leq t \leq 10^{9}$)表示把 $a[i]$ 改变成为 $t$ 。


「POI2014」KUR-Couriers-主席树
· ☕ 1 min read

给一个数列 $\{a_n\}$ ,每次询问区间 $[l,r]$ 内有没有一个数出现次数超过一半。如果有,输出这个数,如果没有,输出 $0$ 。


「Luogu3765」总统选举-平衡树-线段树
· ☕ 3 min read

秋之国共有 $n$ 个人,分别编号为 $1,2,...,n$ ,一开始每个人都投了一票,范围 $[1,n]$ ,表示支持对应编号的人当总统。共有 $m$ 次预选,每次选取编号 $[l_i,r_i]$ 内的选民展开小规模预选,在该区间内获得超过区间大小一半的票的人获胜,如果没有人获胜,则由小 C 钦定一位候选者获得此次预选的胜利(获胜者可以不在该区间内),每次预选的结果需要公布出来,并且每次会有 $k_i$ 个人决定将票改投向该次预选的获胜者。全部预选结束后,公布最后成为总统的候选人,没有候选人的话输出 $-1$ 。


「国家集训队」聪聪可可-点分治
· ☕ 2 min read

有一颗 $n$($n<20000$)个节点的树,每条边都有边权。接下来由聪聪和可可分别随即选一个点,如果两点之间简单路径上的边权和是 $3$ 的倍数,则判聪聪赢,否则可可赢。

聪聪非常爱思考问题,希望知道对于这张图自己的获胜概率是多少。


「NOI2015」软件包管理器-树链剖分
· ☕ 3 min read

你决定设计你自己的软件包管理器。如果软件包 A 依赖软件包 B ,那么安装软件包 A 以前,必须先安装软件包 B 。同时,如果想要卸载软件包 B ,则必须卸载软件包 A 。现在你已经获得了所有的软件包之间的依赖关系。除 $0$ 号软件包以外,所有软件包都会依赖一个且仅一个软件包,而 $0$ 号软件包不依赖任何一个软件包。依赖关系不存在环。

现在有一些安装或卸载软件包的操作,需要求出这个操作实际上会改变多少个软件包的安装状态(即安装操作会安装多少个未安装的软件包,或卸载操作会卸载多少个已安装的软件包)。


「国家集训队」数颜色-带修改莫队
· ☕ 1 min read

墨墨购买了一套 $N$ 支彩色画笔(其中有些颜色可能相同)。墨墨会向你发布如下指令:

  1. Q L R 代表询问你从第 $L$ 支画笔到第 $R$ 支画笔中共有几种不同颜色的画笔。

  2. R P Col 把第 $P$ 支画笔替换为颜色 $Col$ 。


「Violet」蒲公英-分块
· ☕ 3 min read

给定一个数列 ${a\_n}$ ,$m$ 次询问在 $[l,r]$ 区间内的最小众数。
强制在线。


「SDOI2011」染色-树链剖分+线段树
· ☕ 3 min read

给定一棵有 $n$ 个节点的无根树和 $m$ 个操作,操作有两类:

  • 将节点 $a$ 到节点 $b$ 路径上所有点都染成颜色 $c$ ;
  • 询问节点 $a$ 到节点 $b$ 路径上的颜色段数量(连续相同颜色被认为是同一段),

如“112221”由3段组成:“11”、“222”和“1”。

请你写一个程序依次完成这 $m$ 个操作。