「HNOI2010」弹飞绵羊-动态树
· ☕ 2 min read
游戏一开始,Lostmonkey 在地上沿着一条直线摆上 $n$ 个装置,每个装置设定初始弹力系数 $K_i$ ,当绵羊达到第 $i$ 个装置时,它会往后弹 $K_i$ 步,达到第 $i+K_i$ 个装置,若不存在第 $i+K_i$ 个装置,则绵羊被弹飞。
存在两种操作:
查询在第 $i$ 个装置起步时,再经多少次会被弹飞。
修改第 $i$ 个装置的弹力系数为 $K'$ 。
保证任何时候,任何装置弹力系数均为正整数。
游戏一开始,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$ 个结点的树,求其直径的长度,以及有多少条边满足所有的直径都经过该边。
lxhgww 最近迷上了一款游戏,在游戏里,他拥有 $n$ 个装备( $n \le 1000000$ ),每种装备都有 $2$ 个属性,这些属性的值用 $[1,10000]$ 之间的数表示。当他使用某种装备时,他只能使用该装备的某一个属性。并且每种装备最多只能使用一次。
游戏进行到最后, lxhgww 遇到了终极 boss ,这个终极 boss 很奇怪,攻击他的装备所使用的属性值必须从 $1$ 开始连续递增地攻击,才能对 boss 产生伤害。现在lxhgww想知道他最多能连续攻击 boss 多少次?
有一个 $n$ 行 $m$ 列的黑白棋盘,你每次可以交换两个相邻格子(相邻是指有公共边或公共顶点)中的棋子,最终达到目标状态。要求第 $i$ 行第 $j$ 列的格子只能参与 $m _ {i,j}$ 次交换。
输出仅一行,为最小交换总次数。如果无解,输出 $-1$ 。
你的公司需要提供 $n$ 类产品,其中第 $i$ 类产品共需要 $C _ {i}$ 件。公司共有 $m$ 名员工。员工能够制造的产品种类有所区别,我们用一个由 $0$ 和 $1$ 组成的 $m\times n$ 的矩阵 $\mathbb {A}$ 来描述每名员工能够制造哪些产品。
对于员工 $i$ ,给出 $S_i$ 。定义他的愤怒值与他制作的产品数量之间的函数是一个 $S_i+1$ 段的分段函数。设 $T _ {i,0}=0$,$T _ {i,S _ {i+1}}=+\infty$ ,那么当他制造第 $[T _ {i,j-1}+1,T _ {i,j}]$ 件产品时,每件产品会使他的愤怒值增加 $W _ {i,j}$ , $1\leq j\leq S _ {i+1}$ 。保证 $0\lt W _ {i,j} \lt W _ {i,j+1}, \; 0 \lt T _ {i,j} \lt T _ {i,j+1}$ 。
你的任务是制定出一个产品的分配方案,使得订单条件被满足,并且所有员工的愤怒值之和最小。
给定一张有向图,每条边都有一个容量 $C$ 和一个扩容费用 $W$ 。这里扩容费用是指将容量扩大 $1$ 所需的费用。
现在请你编写一个程序求出:
给定一个有向图 $G$ ,请求出 $G$ 的最大半连通子图拥有的节点数 $K$ ,以及不同的最大半连通子图的数目 $C$ 。