【Atcoder】AGC002 B-F简要题解 B-F

B.Box and Ball

模拟,第 k k k步中每个盒子球的数目是一定的,维护 a i = 1 / 0 a_i=1/0 ai=1/0表示当前第 i i i个位置是否可能存在黑球。若 a x i = 1 a_{x_i}=1 axi=1,则 b x i = 1 b_{x_i}=1 bxi=1,若 x i x_i xi此时只有一个球,则需要将 a x i a_{x_i} axi重新设为 0 0 0


C.Knot Puzzle

贪心找到一段只剩一个绳结且相邻两端长度之和 ≥ L \geq L L的段,向外解开倒着输出即可。


D.Stamp Rally

整体二分+启发式合并维护可撤回的并查集。


E.Candy Piles

把堆按糖果数目降序排序,看做二维平面上的列,第 i i i列有 a i a_i ai个格子。从左下角的格子出发,每次向上/右走一格,走到一个上面和右边都没有格子的地方就输了。

按博弈论的 N / P N/P N/P状态可以推出每一条斜线上的结果相同,如图:
【Atcoder】AGC002 B-F简要题解 B-F_第1张图片
图片来源-yww

直接找到 ( 0 , 0 ) (0,0) (0,0)对应的是哪个点 ( i , i ) (i,i) (i,i),算出这个点到上方和右方轮廓的距离,只要有一个是偶数,就先手必胜。


F.Leftmost balls

显然任意前缀中白球数目 ≥ \geq 其它颜色数
从前向后 d p dp dp d p i , j dp_{i,j} dpi,j表示出现 i i i个白球 j j j种其它颜色的球的方案,转移:
d p i , j = d p i − 1 , j + d p i , j − 1 × ( n − i + ( k − 1 ) ( n − j + 1 ) − 1 k − 2 ) × ( n − j + 1 ) dp_{i,j}=dp_{i-1,j}+dp_{i,j-1}\times\dbinom{n-i+(k-1)(n-j+1)-1}{k-2}\times (n-j+1) dpi,j=dpi1,j+dpi,j1×(k2ni+(k1)(nj+1)1)×(nj+1)

你可能感兴趣的:(计数DP,贪心,DP,atcoder)