「SDOI2011」消防-树的直径+单调队列
· ☕ 2 min read
某个国家有 $n$ 个城市,这 $n$ 个点之间的边构成一棵树。
现求一条边长度和不超过 $S$ 的路径(两端都是城市,可以只为一个城市),使得所有城市到这条路径的距离的最大值最小,并输出这个最小值。
某个国家有 $n$ 个城市,这 $n$ 个点之间的边构成一棵树。
现求一条边长度和不超过 $S$ 的路径(两端都是城市,可以只为一个城市),使得所有城市到这条路径的距离的最大值最小,并输出这个最小值。
小Z有一片森林,含有 $N$ 个节点,每个节点上都有一个非负整数作为权值。初始的时候,森林中有 $M$ 条边。
小Z希望执行 $T$ 个操作,操作有两类:
Q x y k 查询点 $x$ 到点 $y$ 路径上所有的权值中,第 $k$ 小的权值是多少。此操作保证点 $x$ 和点 $y$ 连通,同时这两个节点的路径上至少有 $k$ 个点。
L x y 在点 $x$ 和点 $y$ 之间连接一条边。保证完成此操作后,仍然是一片森林。
强制在线。
对于所有的数据 $n,m,T \leq 8 \times 10^4$ 。
$n$ 个布丁摆成一行,每个布丁最开始都有一个颜色 $c_i$ ,进行 $m$ 次操作。
操作格式:
1 c d :将所有的 $c$ 颜色替换为$d$
2 :查询当前布丁序列一共有多少段颜色。例如颜色分别为 $1,2,2,1$ 的四个布丁一共有3段颜色。
游戏一开始,Lostmonkey 在地上沿着一条直线摆上 $n$ 个装置,每个装置设定初始弹力系数 $K_i$ ,当绵羊达到第 $i$ 个装置时,它会往后弹 $K_i$ 步,达到第 $i+K_i$ 个装置,若不存在第 $i+K_i$ 个装置,则绵羊被弹飞。
存在两种操作:
查询在第 $i$ 个装置起步时,再经多少次会被弹飞。
修改第 $i$ 个装置的弹力系数为 $K'$ 。
保证任何时候,任何装置弹力系数均为正整数。
有一个 $a \times b$ 的整数组成的矩阵,现请你从中找出一个 $n\times n$ 的正方形区域,使得该区域所有数中的最大值和最小值的差最小,输出这个最小的差值。
超级计算机中的任务用三元组 $(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$ 秒正在运行的任务优先级之和。
强制在线。
辉辉热衷于洞穴勘测。
辉辉有一台监测仪器可以实时将通道的每一次改变状况,并在辉辉手边的终端机上显示:
Connect u v代表监测到洞穴u和洞穴v之间出现了一条通道,Destroy u v代表监测到洞穴u和洞穴v之间的通道被毁。Query u v,代表向监测仪询问此时洞穴u和洞穴v是否连通。
保证无论通道怎么改变,任意时刻任意两个洞穴之间至多只有一条路径。
已知在第一条指令显示之前,洞穴群中没有任何通道存在。
给定一个含有 $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$ 。
定义一棵树上最长的路径为树的直径。树的直径可能不唯一。
给定的一棵 $n$ 个结点的树,求其直径的长度,以及有多少条边满足所有的直径都经过该边。
给一个数列 $\{a_n\}$ ,每次询问区间 $[l,r]$ 内有没有一个数出现次数超过一半。如果有,输出这个数,如果没有,输出 $0$ 。