Teek is Loading...
主题
前置知识:K-Nim 游戏。
由于白棋和黑棋交错放并且只能向中间走,相邻的两个白黑棋中间的格子数即可看作一堆石子。
问题转换为:有 N=n−k 个完全相同的物品,M=k2 个不同的盒子,把若干个物品放进盒子里,要求每个盒子内物品数量的二进制,每位的和 modK=0(K=d+1),求方案数。
考虑每次只往盒子里放 2i 个物品,这样子每次放数都只和当前位有关,设 fi,j 表示考虑 [i,14] 位二进制每位和均为 0,并且还剩 j 个物品没放进盒子。为了保证第 i 位和为 0,每次至少选择 xK 个盒子(x≥0),故:
最终没选的物品随便插到盒子中间:∑f0,i×(M+ii)。
时间复杂度 O(KNlogN)。