CDQ WQS Rush
以下为 WQS。
P2619 - [国家集训队]Tree I
https://www.luogu.com.cn/problem/P2619
- 注意,是 \(\ge K\) 的时候进行答案的更新,因为我是在「黑与白」的边权相同时候,优先选择白。所以如果 \(\ge K\) 了,就代表我可以把一些白换成黑。
- 注意,答案总是为减去 \(K\times M\)。
- 一般来说,实数二分都是可以的。但是整数二分会好写(不知道为什么我写实数,总是地,出错)判断可以整数二分的方法:如果让 \(K\) 增加一,则只会增加一个整数(比如在本题中,我增加一个 \(K\),增加一条白边,那么 tot 就会增加白的边权,显然是整数的)
P3620 - [APIO/CTSC 2007] 数据备份
https://www.luogu.com.cn/problem/P3620
普通 dp:设 \(f_{i,j,0/1}\) 为 \(i\) 号点选了 \(j\) 个线,当前这个点有没有连线,的方案数。注意到只会相邻的两个点连线,所以容易转移。
优化 dp:设 \(f_{i,0/1}\) 为上面的 dp,\(g_{i,0/1}\) 为 \(f_{i,0/1}\) 取得的方案数。然后取 min 就是,如果 \(f_{i-1,1}<f_{i-1,1}\) 那么铁定 1,但是如果相等就比较 \(g\),谁大谁为 min。、
为什么是 \(g\) 大者胜?
因为我们只在 \(g\ge K\) 的时候统计答案,所以能选一定要选。
然后就是 Wqs 裸奔了。
以下为 CDQ。
P4390 - [BOI2007]Mokia 摩基亚
https://www.luogu.com.cn/problem/P4390
复习 CDQ。