D1:
T1
\(Ans = \sum_{i=2}^{n} |a_{i}-a_{i-1}|\),正确性可由贪心证得
T2
考虑贪心,选出一个属于A的集合,容易证明其是最优的
然后考虑一个数如果不被选,则他需要满足那些条件,发现是他可以被已选出的一些数表示
那么这就是一个要求不断加点的完全背包,和普通完全背包无异
T3
看到最大值最小直接二分
直接考虑二分lim为最小的最大权
考虑一个点u和连接到他的一条“赛道”s
若\(lim \leq s+dis(s,u)\)则直接连接他们
否则,把他放入一个multiset中,然后二分其中最小的q(但是\(lim \leq q+s\)),把他们连接
主要可用贪心证明(贪心大赛……各种贪心)
D2:
T1
先做树上情况,如果是在树上的话我们可以对于每个节点找最小的与之相连的节点,有字典序的定义易得这是成立的
在做基环树的情况,考虑对于环上的每一条边依次删去即可
或者考虑回到父节点的充要条件,此做法可在仙人掌上使用
贪心+1
T2
考虑公式:
Ans(n,m) = 3*Ans(n,m-1)
打表Ans(n,n),Ans(n,n+1),根据递推公式即可
T3
考虑修改点(a,b)之间的链即可,因为其他的部分没有被修改影响,预处理出来即可
预处理和倍增都是dp例题 没有上司的舞会
考虑倍增即可,O(nlogn)