Skip to content
0

P2490 [SDOI2011] 黑白棋 笔记

前置知识:K-Nim 游戏

由于白棋和黑棋交错放并且只能向中间走,相邻的两个白黑棋中间的格子数即可看作一堆石子。

问题转换为:有 N=nk 个完全相同的物品,M=k2 个不同的盒子,把若干个物品放进盒子里,要求每个盒子内物品数量的二进制,每位的和 modK=0K=d+1),求方案数。

考虑每次只往盒子里放 2i 个物品,这样子每次放数都只和当前位有关,设 fi,j 表示考虑 [i,14] 位二进制每位和均为 0,并且还剩 j 个物品没放进盒子。为了保证第 i 位和为 0,每次至少选择 xK 个盒子(x0),故:

fi,jxK×2ifi+1,j×(MxK)

最终没选的物品随便插到盒子中间:f0,i×(M+ii)

时间复杂度 O(KNlogN)

最近更新