AtCoder ARC212 总结

AtCoder ARC212 总结

A

观察到 \(K_4\) 中只有三种本质不同长为 \(4\) 的环,并且刚好对应下列三组和两两匹配(即 \(A+B,A+C,B+C\)):

  • \(A=(1,2)+(3,4)\)
  • \(B=(1,3)+(2,4)\)
  • \(C=(1,4)+(2,3)\)

枚举 \(A,B\) 然后将答案加上 \((A-1)(B-1)(C-1)(A+B+C-\max(A,B,C))\) 即可。

B

对于 \(X_i\ne Y_i\) 连边 \(X_i\to Y_i\),则我们要找一条边权和最小的包含 \(X_1\to Y_1\) 的环。

\(Y_1\) 开始向 \(X_1\) 跑最短路即可。

C

首先不妨设 \(a_i>b_i\),最后将答案乘上 \(2^m\) 即可。

\(c_i=a_i-b_i\),假如求出了 \(\sum c_i=K\) 的答案,最后再插入 \((n-K)/2\)\(a_i\gets a_i+1,b_i=b_i+1\) 即可,后面可以用插板法求。

现在问题是,枚举 \(K\),如何求所有满足 \(\sum _{i=1}^m c_i=K\)\(\prod c_i\) 的和。考虑组合意义。先将 \(K\) 个数划分为 \(m\) 组,每组再选一个数。先把每组选的数固定下来,然后插入那些不被选的数,每组的数被被选择的数分割成前后两部分,所以一共将 \(K-m\) 个数划分成 \(2m\) 个可空部分,插板即可。

所以最终答案即

\[\sum_{K\ge 0} [(n-K)\bmod 2=0]\binom{(n-K)/2+m-1}{m}\binom{j+m-1}{2m-1} \]

D

\(same_i\) 为与 \(i\) 在同一个集合中的人,与 \(i\) 的边权和;\(diff_i\) 则是与 \(i\) 在不同集合中的人,与 \(i\) 的边权和。

注意到如果当前有一个人 \(x\) 是坏的(即 \(same_x<diff_x\)),那么把他移动到另一个集合中一定会使他变好,同时会使 \(\sum _{i=1}^n(same_i-diff_i)\) 增加 \(2(diff_x-same_x)\)

所以如果有人当前是坏的,我们一定可以使 \(\sum _{i=1}^n({same_i-diff_i)}\) 增加。则当此值无法再增加时,所有人都是好的。

于是我们每次找到一个当前坏的人,然后将其翻转,不断这样操作直到找不到为止。

操作的次数是 \(O(NA)\)(因为 \(\sum _{i=1}^n(same_i-diff_i)\) 的值域是 \(O(NA)\)),单次操作是 \(O(N^2)\),所以复杂度是 \(O(N^3A)\)

E

待补!

F

待补!

posted @ 2026-02-04 21:48  dengchengyu  阅读(0)  评论(0)    收藏  举报