- 1004 Segment Game
n条线段 [li,li+i] ,询问每条线段内部有几条完整的线段。从小到大处理i时,
- A={[l,r]|r≤li+i}
- B={[l,r]|l≥li}
- C={[l,r]|li≤l<r<=li}
-
U={[l,r]}
容斥原理: |U|=|A|+|B|−|C|
2.1008 Convex Problem
锐角个数不超过2
3.1009 root
原根
4.1010 Leader in Tree Land
复杂度计算。
- 令:dp[v][j]表示子树v有k个ministr的方案数量,则对dp[v]做一次背包。
dp[i][j]=∑k=0jdp[i][j−k]∗dp[son][k]
然后对dp[i][j]乘上一个组合因子 sz[v]!sz[son1]!...sz[sonk]!
这个复杂度是 O(n2) 的 - 另一种思路(题解)
概率的角度。若v成为ministr的概率为 pv=1sz[v] 。则对于任意两个节点 u,v,pv与pu 互相独立。
然后求k个ministr的概率。因为是互相独立,所以dp一下就好了。
方法论
- 容斥原理,补集
- 仔细分析,发现特征
- 概率与计数问题,独立变量