C
状压枚举加号所在位置即可。
D
因为每个点只能影响周围 9 9 9 个 3 × 3 3 \times 3 3×3 矩阵的黑格子个数,暴力去找这些矩阵统计答案即可,注意不要重复算。
E
给每条边建立虚点,用并查集合并后跑最短路即可。
F
卡牌构成了一个确定的序列,我们发现如果 A A A 要获胜需要取出 a a a 个 A A A(因为第一回合 A A A 抽卡没有计入序列), B B B 获胜需要取出 b + 1 b+1 b+1 个 B B B, C C C 获胜需要取出 c + 1 c+1 c+1 个 C C C。
所以答案求的就是用 a a a 个 A A A, b b b 个 B B B, c c c 个 C C C 构成的以 A A A 结尾的序列,为了方便,令 a ′ = a − 1 , n = a ′ + b + c a'=a-1,n=a'+b+c a′=a−1,n=a′+b+c。
我们枚举 A A A 取胜时序列的长度 i i i,就能得到计算式
∑ i = a ′ n C i a ′ 3 n − i ∑ j + k = i − a ′ , j ≤ b , k ≤ c C i − a ′ j \sum_{i=a'}^n C_{i}^{a'} 3^{n-i} \sum_{j+k=i-a',j \leq b,k \leq c} C_{i-a'}^j i=a′∑nCia′3n−ij+k=i−a′,j≤b,k≤c∑Ci−a′j
因为右式有两个变量,看起来很不舒服,设 T = i − a ′ T=i-a' T=i−a′,于是变形得 max ( 0 , T − c ) ≤ j ≤ b \max(0,T-c) \leq j \leq b max(0,T−c)≤j≤b,重写式子得
∑ i = a ′ n C i a ′ 3 n − i ∑ j = max ( 0 , T − c ) b C T j \sum_{i=a'}^n C_{i}^{a'} 3^{n-i} \sum_{j=\max(0,T-c)}^b C_T^j i=a′∑nCia′3n−ij=max(0,T−c)∑bCTj
右侧的式子仍然不好化简,考虑分类讨论,令 c ≤ b c \leq b c≤b:
1. 1. 1. max ( 0 , T − c ) = 0 \max(0,T-c)=0 max(0,T−c)=0,即 T ≤ c ≤ b T \leq c \leq b T≤c≤b,此时式子为
∑ j = 0 b C T j = ∑ j = 0 T C T j = 2 T \sum_{j=0}^b C_T^j=\sum_{j=0}^T C_T^j=2^T j=0∑bCTj=j=0∑TCTj=2T
2. 2. 2. T > c T>c T>c,于是有 ∑ j = T − c b C T j \sum_{j=T-c}^b C_T^j ∑j=T−cbCTj,考虑递推,设 f = ∑ j = T − c b C T j f=\sum_{j=T-c}^b C_T^j f=∑j=T−cbCTj,下一轮的式子 g = ∑ j = T + 1 − c b C T + 1 j g=\sum_{j=T+1-c}^b C_{T+1}^j g=∑j=T+1−cbCT+1j,有
g = ∑ j = T + 1 − c b C T j + C T j − 1 = 2 f − C T T − c − C T b g=\sum_{j=T+1-c}^b C_T^j+C_T^{j-1} =2f-C_T^{T-c}-C_T^b g=j=T+1−c∑bCTj+CTj−1=2f−CTT−c−CTb
于是就解决了。