9.26杂题选讲

非常开心,所有代码都咕掉了/cy

T1

简单计数题,树状数组维护即可。

T2

线段树维护,如果一个区间整除某个数的时候都等价于减同一个数,那么就打上区间减法的标记。

复杂度玄学,但是能过。

T3

把正着做换成倒着做,把操作变成减去两边的数。

考虑最大的那个数,显然在它没有变化的情况下两边的数都不能进行操作,所以如果它没有变成目标状态,就肯定要给它进行操作。

于是一个优先队列维护最大值就做完了。

T4

显然先要求出每个点的最小长度。

把每一条边分成多个,建几个虚点,然后按最短长度分层。

每一层做,先按字典序排序,然后更新后面。注意如果两个点的答案完全相同那么要一起更新。

T5

想了个假做法还乐滋滋的感觉自己菜得要死……

首先把询问的时候有环的情况判掉。

根据最小生成树的理论,询问的时候权值不同的边是独立的。

离线,按权值一种一种地做。每次把某个询问的集合加进去看是否有环,然后可撤销并查集退回去。

转载于:https://www.cnblogs.com/p-b-p-b/p/11594616.html

你可能感兴趣的:(9.26杂题选讲)