zoukankan      html  css  js  c++  java
  • 普及数数(敏捷开发之alpha版本)

    组合恒等式:

    [inom{n}{m} = inom{n}{n-m} ag{1} ]

    [inom{n}{m} inom{m}{k} = inom{n}{k} inom{n-k}{m-k} ag{2} ]

    [sum_{i=0}^n inom{r}{i} inom{s}{n-i} = inom{r+s}{n} ag{范德蒙德卷积恒等式} ]

    [sum_{i=0}^n inom{i}{m} = inom{n+1}{m+1} ag{上指标求和一} ]

    [sum_{i=0}^m inom{n+i}{n} = inom{n+m+1}{m} ag{上指标求和二} ]

    [sum_{k=0}^m inom{n+k}{k} = inom{n+m+1}{m} ag{斜求和} ]

    [sum_{i=0}^n left(egin{matrix} n \ i end{matrix} ight) = 2^n ag{整行求和} ]

    [sum_{i=0}^n inom{n}{i}[2mid i] = sum_{i=0}^n inom{n}{i}[2 mid i] = 2^{n-1} ag{间隔求和, 要求 $n > 0$} ]

    [sum_{i=0}^n inom{n}{i} (-1)^i = sum_{i=0}^n inom{n}{i} (-1)^{i+1} = [n=0] ag{间隔共轭求和, 是二项式反演的基础} ]

    选几个组合意义不明显又不容易归纳的证明一下:

    对上指标求和一的证明:
    ([1,n+1]) 中选 (m+1) 个数, 将方案按照最大的数分类, 即可得到此式子。
    对上指标求和二的证明:

    [sum_{i=0}^m left(egin{matrix} n+i \ n end{matrix} ight) ]

    [sum_{i=0}^{n+m} left(egin{matrix} i \ n end{matrix} ight) - sum_{i=0}^{n-1} left(egin{matrix} i \ n end{matrix} ight) ]

    [=left(egin{matrix} n+m+1 \ n+1 end{matrix} ight) - left(egin{matrix} n \ n+1 end{matrix} ight) ]

    [=left(egin{matrix} n+m+1 \ m end{matrix} ight) ]

    这东西好像还有个因吹斯挺的组合意义, 但我困了, 今天上午再说(2020.8.6 0:12)


    T1
    手玩下可以发现, 最终局面之与各 (a_i) 的数量有关, 与它们的排列顺序无关。
    那么, 如果存在一个 (i) 使得 (ge i)(a_k) 的总数超过 (n-i+1), 就不合法。
    通过 (DP) 统计方案。
    (f[i][j]) 表示 (ge i) 的编号总共又放了 (j) 人, 答案就是 (f[1][n-m])
    转移方程如下:

    [f[i][j] = sum limits_{k = 0}^j f[i + 1][j - k] imes C_j^k Big(0 le j le n - i + 1 - (不归你安排的 ge i 的个数) Big) ]

    T2
    第一步处理是容斥。

    [ans = sum_{i=0}^n sum_{j=0}^n [i+j>0] (-1)^{i+j-1} C_n^iC_n^j f(i,j) ]

    其中, (f(i,j)) 表示至少有 (i)(j) 列 同色的方案数。
    1.当 (i>0)(j>0) 时, 这几行几列都是同色的, 此时方案数为 (3 * 3^{(n-i)*(n-j)})
    2.若 (i=0) 异或 (j=0), 方案数为 (3^{i+j} * 3^{n*(n-i-j)})。((i+j) 就是 (i) 异或 (j)
    后者计算方便且适于时限, 现在处理前者。

    [pre = sum_{i=1}^n sum_{j=1}^n (-1)^{i+j-1} C_n^i C_n^j 3*3^{(n-i)*(n-j)} ]

    (p = n-i)(q = n-j)

    [pre = 3sum_{p=0}^{n-1} sum_{q=0}^{n-1} (-1)^{2n-p-q-1} C_n^p C_n^q 3^{pq} ]

    由于 (2n) 是偶数, 所以 (2n-p-q-1)(2n - (2n-p-q-1)) 奇偶性相同, 故:

    [pre = 3sum_{i=0}^{n-1} sum_{j=0}^{n-1} (-1)^{i+j+1} C_n^i C_n^j 3^{ij} ]

    [= 3sum_{i=0}^{n-1} C_n^i (-1)^{i+1} sum_{j=0}^{n-1} C_n^j (-3^i)^j ]

    [= 3sum_{i=0}^{n-1} C_n^i (-1)^{i+1} [(1-3^i)^n - (-3^i)^n] ]

    这题就做完啦。

    T3
    T4
    T5

    经典问题:自然数幂之和

    (S_k(n) = sum_{i=1}^n i^k)
    命题:(S_k(n)) 是关于 (n)(k+1) 次多项式。
    证明:对 (k) 归纳。

    1. (k = 0)(S_0(n) = n),是关于 (n)(1) 次多项式。
    2. 考虑一个十分奇妙的构造:

      [sum_{i=1}^n [(i+1)^{d+1} - i^{d+1}] = sum_{i=1}^n sum_{j=0}^d left(egin{matrix}d+1\jend{matrix} ight) i^j ]

    [(n+1)^{d+1} - 1 = sum_{j=0}^d left(egin{matrix}d+1\jend{matrix} ight) sum_{i=1}^ni^j = sum_{j=0}^d left(egin{matrix}d+1\jend{matrix} ight) S_j(n) ]

    [left(egin{matrix}d+1\dend{matrix} ight)S_d(n) = (n+1)^{d+1} - sum_{j=0}^{d-1} left(egin{matrix}d+1\jend{matrix} ight) S_j(n) - 1 ]

    最后这个式子就明显表明了:如果对于 (forall kle d-1)(S_k(n)) 是关于 (n)(k+1) 多项式, 那么 (S_d(n)) 就是关于 (n)(d+1) 次多项式。

    对了, 依照上面的式子, 似乎得到了一个递推式:

    [S_d(n) = frac{1}{d+1} Big[ (n+1)^{d+1} - sum_{j=0}^{d-1} left(egin{matrix}d+1\jend{matrix} ight) S_j(n) - 1 Big] ]

    拉格朗日插值

    众所周知, (k+1) 个点值 ((x_{iin[0,k]},y_i)) 唯一决定一个 (k) 次多项式(这里多项式都是实系数的)。
    根据拉格朗日插值, 这个多项式是:

    [F(x) = sum_{i=0}^k y_i prod_{i eq j} frac{x-x_j}{x_i-x_j} ]

    证明:
    只要对于 (forall i in [0,k])(F(x_i) = y_i), 那么 (F(x)) 就是那个唯一的多项式。
    依据这个思路, 将 (x_p) 代入 (F(x))

    [F(x_p) = sum_{i=0}^k y_i prod_{i eq j} frac{x_p-x_j}{x_i-x_j} ]

    [= sum_{i=0}^k y_i prod_{i eq j} frac{x_p-x_j}{x_i-x_j} [i=p] + sum_{i=0}^k y_i prod_{i eq j} frac{x_p-x_j}{x_i-x_j} [i eq p] ]

    [= y_p prod_{p eq j} frac{x_p-x_j}{x_p-x_j} + sum_{i=0}^k y_i prod_{i eq j} frac{x_p-x_j}{x_i-x_j} [i eq p] ]

    [= y_p + 0 ]

    所以拉格朗日插值公式是正确的。

    用拉插解 (S_k(n))

    由于 (S_k(n))(k+1) 次多项式, 所以只要求出 (k+2) 个点值, 就可以拉插了。
    (x in [0,k+1])(k+2) 个点值:
    不赘述了, 很好设计算法, 有对模数的要求。


    [egin{Bmatrix} n \ m end{Bmatrix} ]

    [inom{n}{m} ]

    [egin{bmatrix} n \ m end{bmatrix} ]

    斯特林数与阶幂

    第一类斯特林数 (egin{bmatrix} n \ m end{bmatrix}) 表示有 (m) 个循环的 (n) 阶置换的数量。
    递推式为 (egin{bmatrix} n \ m end{bmatrix} = egin{bmatrix} n-1 \ m-1 end{bmatrix} + (n-1)egin{bmatrix} n-1 \ m end{bmatrix})
    第二类斯特林数 (egin{Bmatrix} n \ m end{Bmatrix}) 表示将 (n) 阶集合划分成 (m) 个集合的方案数。
    递推式为 (egin{Bmatrix} n \ m end{Bmatrix} = egin{Bmatrix} n-1 \ m-1 end{Bmatrix} + megin{Bmatrix} n-1 \ m end{Bmatrix})
    它们的边界条件都是 (egin{bmatrix} 0 \ 0 end{bmatrix} = egin{Bmatrix} 0 \ 0 end{Bmatrix} = 1)

    下降幂 (n^{underline m} = n(n-1)(n-2)cdots (n-m+1))
    上升幂 (n^{overline m} = n(n+1)(n+2)cdots (n+m-1))


    定理1

    [n^m = sum_{i=0}^m egin{Bmatrix} m \ i end{Bmatrix} n^{underline i} ag{普通幂转下降幂} ]

    证明:
    通过组合意义考虑, (n^m) 表示将 (m) 个不同的球放到 (n) 个盒子里的方案数, 通过将这些方案按照 “有几个盒子非空” 分类, 得到:

    [n^m = sum_{i=0}^m inom{n}{i} egin{Bmatrix} m \ i end{Bmatrix} i! = sum_{i=0}^m egin{Bmatrix} m \ i end{Bmatrix} n^{underline i} ]

    定理2

    [n^{overline m} = sum_{i=0}^m egin{bmatrix} m \ i end{bmatrix} n^i ag{上升幂转普通幂} ]

    证明:
    用归纳法证明比较优美。(合并的快感)

    1. (m=1) 时, 显然成立。

    [n^{overline m} = (n+m-1) n^{overline{m-1}} = (n+m-1) sum_{i=0}^{m-1} egin{bmatrix} m-1 \ i end{bmatrix} n^i ]

    [= sum_{i=1}^{m} egin{bmatrix} m-1 \ i-1 end{bmatrix} n^i + (m-1)sum_{i=0}^{m-1} egin{bmatrix} m-1 \ i end{bmatrix} n^i ]

    再由于 (egin{bmatrix} n \ -1 end{bmatrix} = egin{bmatrix} n \ n+1 end{bmatrix} = 0) 之类的性质, 定理2 就得证了。

    斯特林反演

    啊这 ( ext{vfleaking}) 的炫酷反演魔术确实是反演之鉴。

    一个 xio 引理:

    [x^{underline n} = (-1)^n (-x)^{overline n}, ;;; x^{overline n} = (-1)^n (-x)^{underline n} ]

    反演的关键

    [sum_{k=m}^n (-1)^{n-k} egin{bmatrix} n \ k end{bmatrix} egin{Bmatrix} k \ m end{Bmatrix} = [m=n] ag{1} ]

    [sum_{k=m}^n (-1)^{n-k} egin{Bmatrix} n \ k end{Bmatrix} egin{bmatrix} k \ m end{bmatrix} = [m=n] ag{2} ]

    ((2)) 的证明:

    [n^m = sum_{i=0}^m egin{Bmatrix} m \ i end{Bmatrix} n^{underline i} = sum_{i=0}^m egin{Bmatrix} m \ i end{Bmatrix} (-1)^i (-n)^{overline i} ]

    [sum_{i=0}^m egin{Bmatrix} m \ i end{Bmatrix} (-1)^i sum_{j=0}^i egin{bmatrix} i \ j end{bmatrix} (-n)^j = sum_{j=0}^m n^j sum_{i=j}^m egin{Bmatrix} m \ i end{Bmatrix} egin{bmatrix} i \ j end{bmatrix} (-1)^{i+j} ]

    显然等式左右两边各次幂 (n) 的系数都应分别相等, 故

    [sum_{i=j}^m egin{Bmatrix} m \ i end{Bmatrix} egin{bmatrix} i \ j end{bmatrix} (-1)^{i+j} = [j=m] ]

    一些形式和等效表达式上的区别不需要在意, ((2)) 就得证了。

    ((1)) 的证明:

    [(-1)^m (-n)^{underline m} = n^{overline m} = sum_{i=0}^m egin{bmatrix} m \ i end{bmatrix} n^i ]

    [(-n)^{underline m} = sum_{i=0}^m egin{bmatrix} m \ i end{bmatrix} (-1)^{m-i} (-n)^i ]

    [n^{underline m} = sum_{i=0}^m egin{bmatrix} m \ i end{bmatrix} (-1)^{m-i} n^i = sum_{i=0}^m egin{bmatrix} m \ i end{bmatrix} (-1)^{m-i} sum_{j=0}^i egin{Bmatrix} i \ j end{Bmatrix} n^{underline j} ]

    [= sum_{j=0}^m n^{underline j} sum_{i=j}^m egin{bmatrix} m \ i end{bmatrix} egin{Bmatrix} i \ j end{Bmatrix} (-1)^{m-i} ]

    我猜下降幂多项式和普通多项式性质差不多, 所以 ((1)) 就得证了 (大概)

    斯特 rin 反演

    [f(n) = sum_{k=0}^n egin{Bmatrix} n \ k end{Bmatrix} g(k) Leftarrow=Rightarrow g(n) = sum_{k=0}^n egin{bmatrix} n \ k end{bmatrix} (-1)^{n-k} f(k) ]

    证明:
    一:从右推左
    已知 (g(n) = sum_{k=0}^n egin{bmatrix} n \ k end{bmatrix} (-1)^{n-k} f(k)), 那么

    [g(n) = sum_{m=0}^n [m=n] g(m) = sum_{m=0}^n sum_{k=m}^n (-1)^{n-k} egin{bmatrix} n \ k end{bmatrix} egin{Bmatrix} k \ m end{Bmatrix} g(m) = sum_{k=0}^n egin{bmatrix} n \ k end{bmatrix}(-1)^{n-k} sum_{m=0}^k egin{Bmatrix} k \ m end{Bmatrix} g(m) = sum_{k=0}^n egin{bmatrix} n \ k end{bmatrix} (-1)^{n-k} f(k) ]

    推完啦!

    二:从左推右
    草我不会证, 按照上面的方法推出来是个很怪的形式, 日后我会寻找证明的方法。

    斯特林数解 (S_k(n))

    [S_k(n) = frac{(n+1)^{underline{k+1}}}{k+1} - sum_{i=0}^{k-1}(-1)^{k-i} · egin{bmatrix} k \ i end{bmatrix} · S_i(n) ]

    证明:

    [n^m = sum_{k=0}^m egin{Bmatrix} m \ k end{Bmatrix} n^{underline k} Leftarrow=Rightarrow n^{underline m} = sum_{k=0}^m egin{bmatrix} m \ k end{bmatrix} (-1)^{m-k} n^k ]

    [n^m = n^{underline m} - sum_{k=0}^{m-1} egin{bmatrix} m \ k end{bmatrix} (-1)^{m-k} n^k ]

    [S_m(n) = sum_{i=1}^n i^m = sum_{i=1}^n egin{Bmatrix} i^{underline m} - sum_{k=0}^{m-1} egin{bmatrix} m \ k end{bmatrix} (-1)^{m-k} i^k end{Bmatrix} ]

    然后就得证了。(关于 (sum_{k=0}^{n-1} k^{underline m} = frac{n^{underline{m+1}}}{m+1}) 这件事, 要用到有限微积分 owo, 具体数学应该是有介绍的)
    算法不赘述了, 虽然慢, 但是对模数没有要求。


    [left(egin{matrix} n \ m end{matrix} ight) ]

    虚假的容斥原理

    (A_i) 为集合, (U) 为全集, (overline{A})(A) 关于 (U) 的补集。

    [igg|igcup_{i=1}^n A_i igg| = sum_{k=1}^n(-1)^{k+1} Bigg( sum_{1le i_1 < cdots < i_k le n} |A_{i_1} cap cdots cap A_{i_k}| Bigg) ag{1} ]

    [igg|igcap_{i=1}^n A_i igg| = |U| - igg|igcup_{i=1}^n overline{A_i} igg| ag{2} ]

    证明 ((1))
    考虑一个处于 (igcup_{i=1}^n A_i) 中的元素 (x), 它属于 (m) 个集合 (T_1, cdots, T_m), 那么它对于右边式子的贡献为:

    [|{T_i}| - |{T_i cap T_j | i<j}| + cdots + (-1)^{m+1}|{ T_1 cap cdots cap T_m }| ]

    [= left(egin{matrix} m \ 1 end{matrix} ight) - left(egin{matrix} m \ 2 end{matrix} ight) + cdots + (-1)^{m+1}left(egin{matrix} m \ m end{matrix} ight) ]

    [= Bigg( -left(egin{matrix} m \ 0 end{matrix} ight) + left(egin{matrix} m \ 1 end{matrix} ight) - left(egin{matrix} m \ 2 end{matrix} ight) + cdots + (-1)^{m+1}left(egin{matrix} m \ m end{matrix} ight) Bigg) + left(egin{matrix} m \ 0 end{matrix} ight) ]

    [= [m=0] + 1 = 1 ]

    然而显然不能让 (m) 等于 (0) 啊(笑
    于是这个式子就得证了。

    证明 ((2))
    随便口胡下感性理解吧, 严格证明以后再补上。

    真实的容斥原理

    吹毛断发,削铁如泥。 (话说 ([n]) 是不是就是 (2^{{1,cdots,n}}) 啊)

    [Bigg| igcup_{i=1}^n A_i Bigg| = sum_{Ssubseteq[n], S eq emptyset} (-1)^{|S|+1} Bigg| igcap_{i in S} A_i Bigg| ag{1}]

    [Bigg| igcap_{i=1}^n A_i Bigg| = sum_{Ssubseteq[n], S eq emptyset} (-1)^{|S|+1} Bigg| igcup_{i in S} A_i Bigg| ag{2} ]

    [Bigg| igcap_{i=1}^n A_i Bigg| = sum_{Ssubseteq[n]} (-1)^{|S|} Bigg| igcap_{i in S} overline{A_i} Bigg| ag{3} ]

    [igg|igcap_{i=1}^n A_i igg| = |U| - igg|igcup_{i=1}^n overline{A_i} igg| ag{4} ]

    ((2))((3)) 本质是一样的:

    [sum_{Ssubseteq[n]} (-1)^{|S|} Bigg| igcap_{i in S} overline{A_i} Bigg| = sum_{Ssubseteq[n]} (-1)^{|S|} egin{Bmatrix} |U|- Bigg| igcup_{i in S} A_i Bigg| end{Bmatrix} ]

    [= |U|sum_{Ssubseteq[n]} (-1)^{|S|} + sum_{Ssubseteq[n]} (-1)^{|S|+1} Bigg| igcup_{i in S} A_i Bigg| ]

    其中,

    [|U|sum_{Ssubseteq[n]} (-1)^{|S|} = |U|sum_{i=0}^n inom{n}{i} (-1)^i = |U|[n=1] ]

    经典经典容斥问题

    不定方程非负整数解计数

    不定方程 (x_1 + cdots + x_k = m ;; (m ge 0)) 的非负整数解的个数为 (inom{m+k-1}{k-1}), 由插板法得到。
    这个方程再加上 (k) 个限制条件 (x_i le b_i ;;(b_i ge 0)), 求非负整数解的数量,解法如下:
    按照 (Bigg| igcap_{i=1}^n A_i Bigg| = sum_{Ssubseteq[n]} (-1)^{|S|} Bigg| igcap_{i in S} overline{A_i} Bigg|) 来转化条件, 就把上界限制改成了下界限制!
    那么, 不定方程 (x_1 + cdots + x_k = m ;; (m ge 0)) 加上 (k) 个限制条件 (x_i ge b_i + 1 ;;(b_i ge 0)), 求非负整数解的个数, 解法如下:
    在方程右边减去下界和 (sum(b_i+1)), 方程的解就是原来带下界方程的解。

    错排计数

    递推比较爽, 但是写容斥式子更爽。
    还是按照 ((3)) 来写:

    [D_n = sum_{i=0}^n (-1)^i inom{n}{i} (n-i)! = n! sum_{i=0}^n frac{(-1)^i}{i!} ]

    凑容斥系数的方法

    用于将各种形如 (Bigg| ext{balabala}_{i=1}^n |A_i| Bigg|) 的式子转化成 (sum_{S in [n], S eq emptyset} g(|S|) Big| igcap_{i in S} A_i Big|) 的形式。

    假设恰好被 (x) 个集合覆盖的元素对 (Bigg| ext{balabala}_{i=1}^n |A_i| Bigg|) 的贡献为 (f(x)), 大小为 (x) 的集合的容斥系数为 (g(x)), 那么

    [sum_{T subseteq S^{'}, T eq emptyset} g(|T|) = f(|S^{'}|) ]

    其中, (S^{'})(S) 的子集, (S^{'}) 中的下标 (i) 都满足某元素被 (A_i) 覆盖。

    (|S^{'}| = m), 上式化简为:

    [sum_{i=0}^m inom{m}{i} g(i) = f(m) ]

    反演,

    [g(m) = sum_{i=0}^m (-1)^{m-i} inom{m}{i} f(i) ]

    例子:[COCI2009-2010#6] XOR
    设第 (i) 个三角形为 (A_i), 要求的就是 (| ext{Xor}_{i=1}^n A_i |)
    考虑容斥, 转为 (sum_{S in [n], S eq emptyset} g(|S|) Big| igcap_{i in S} A_i Big|)
    (g(m) = sum_{i=0}^m (-1)^{m-i} inom{m}{i} f(i)), 其中 (f(i) = [2 mid i])
    所以

    [g(m) = sum_{i=0}^m (-1)^{m-i} inom{m}{i} [2 mid i] ]

    [= (-1)^{m+1} sum_{i=0}^m (-1)^{i+1} inom{m}{i} [2 mid i] = (-1)^{m+1} 2^{m-1} ag{$m ge 0$} ]

    所以

    [| ext{Xor}_{i=1}^n A_i | = sum_{S in [n], S eq emptyset} (-1)^{|S|+1}2^{|S|-1} Big| igcap_{i in S} A_i Big| ]

    问题转化为求若干三角形的交。
    由于两个三角形交起来仍然是三角形,交运算有交换律和结合律, 所以现在的问题是如何求两个三角形的交。

    #include<bits/stdc++.h>
    using namespace std;
    const int N = 13;
    
    int n, x[N], y[N], r[N];
    
    void meg(int &x1,int &y1,int &r1,int x2,int y2,int r2) {
    // 	if(x1>x2) {
    // 		swap(x1,x2); swap(y1,y2); swap(r1,r2);
    // 	}
    // 	if(y2>=y1) {
    // 		r1 = max(0, min(y1+r1-y2-(x2-x1), r1));
    // 		x1 = x2, y1 = y2;
    // 	} else {
    // 		r1 = max(0, min(x2+r2-x1,y1+r1-y2));
    // 		y1 = y2;
    // 	}
        r1 = min(x1+y1+r1, x2+y2+r2) - max(x1,x2) - max(y1,y2);
        r1 = max(r1, 0);
        x1 = max(x1,x2);
        y1 = max(y1,y2);
    	return;
    }
    
    double calc(int S) {
    		int X=0, Y=0, R=0;
    		for(int i=0; i<n; ++i)if((S>>i)&1) {X=x[i+1], Y=y[i+1], R=r[i+1]; break;}
    			S -= S&(-S);
    			for(int i=0; i<n; ++i)if((S>>i)&1) meg(X,Y,R, x[i+1], y[i+1], r[i+1]);
    				return (double)R*(double)R / (double)2;
    }
    
    int main() {
    	
    	cin >> n;
    	for(int i=1; i<=n; ++i) {
    		scanf("%d%d%d", &x[i],&y[i],&r[i]);
    	}
    	double ans = 0;
    	for(int S=1; S<(1<<n); ++S) {
    		int tmp = 0, SS = S;
    			while(SS) ++tmp, SS-=SS&(-SS);
    		double nowans = 1<<(tmp-1);
    		if(!(tmp&1)) nowans = -nowans;
    			nowans *= calc(S);
    				ans += nowans;
    	}
    	printf("%.1lf", ans);
    	return 0;
    }
    

    min-max 容斥(最值反演owo)

    定义 (min(S) = min_{a_i in S} a_i)(max(S) = max_{a_i in S} a_i)
    ( ext{min-max})容斥 的形式是这样的:

    [max(S) = sum_{T subseteq S} (-1)^{|T|+1} min(T) ]

    证明:
    (S) 内元素 (a_i) 降序排序, 此时 (a_k) 就是 (S) 内第 (k) 大的元素。
    左边 (= a_1)
    对于右边:
    使得 (min(T) = a_1)(T) 只有 ({ a_1 }) 这一种, 贡献为 ((-1)^2 a_1 = a_1)
    对于 (min(T) = a_k ; ; (k > 1))(T), 首先它必须有 (a_k), 其次 (a_p (p>k)) 不能有, 所以这样的 (T) 共有 (2^{k-1}) 种选法, 通过人类智慧得知(归纳法, 不详细证了。) ,这 (2^{k-1}) 种选法之中, 其中一半的集合大小是奇数,另一半是偶数, 结合 min-max容斥的式子知, 这样的 (T) 贡献为 (0)

    所以 min-max容斥的式子是正确的。

  • 相关阅读:
    漫谈iOS程序的证书和签名机制
    (转) Xcode 7 Bitcode
    iOS: How To Make AutoLayout Work On A ScrollView
    Objective C运行时(runtime)
    如何让iOS 保持界面流畅?这些技巧你知道吗
    iPhone 6 屏幕揭秘
    用HTML和CSS实现WWDC 2015上的动画效果
    桌球歷史:削球、快攻、弧圈球
    [WPF 自定义控件]自定义控件库系列文章
    UWP 自定义控件:了解模板化控件 系列文章
  • 原文地址:https://www.cnblogs.com/tztqwq/p/13374542.html
Copyright © 2011-2022 走看看