[中译] ProjectEuler 459 Flipping game

楼主: tml (流刑人形)   2014-02-25 07:49:04
459. Flipping game
http://projecteuler.net/problem=459
翻棋游戏是一种两个人玩的游戏,需要一块N乘N的棋盘。
每个格子上都有一面黑一面白的黑白棋一枚。
开始时每一枚棋子都是白色朝上。
一个回合代表将一个符合条件的长方形内的所有棋子都翻转一次,其条件为:
‧长方形的右上角必须是白棋
‧长方形的宽必须是完全平方数n^2 (1, 4, 9, 16, ...)
‧长方形的长必须是三角形数n(n+1)/2 (1, 3, 6, 10, ...)
 ●○○●○ ●○○●○ ●○○●○
 ○○○●● ○○○●● ○●●○○
 ●○●●○→●○●●○→●●○○●
 ○○●○○ ○○●○○ ○●○●●
 ○●●●○ ○●●●○ ○●●●○
两个玩家交互轮流,最先把所有白棋翻成黑棋的玩家获胜。
令W(N)为使用N乘N棋盘时,先手玩家必胜的第一手方法数、并假设双方均使用最佳策略。
则W(1) = 1、W(2) = 0、W(5) = 8以及W(10^2) = 31395。
在N = 5时,先手玩家必胜的第一手列示如下
 ●●●○● ●●●●● ●●●●● ●●●●●
 ●●●●● ●●●○● ●●●●● ●●●●●
 ●●●●● ●●●●● ●●●○● ●●●●●
 ●●●●● ●●●●● ●●●●● ●●●○●
 ●●●●● ●●●●● ●●●●● ●●●●● 
 ●●●●● ●●●○● ●●●●● ●●●●●
 ●●●●● ●●●○● ●●●○● ●●●●●
 ●●●●● ●●●○● ●●●○● ●●●○●
 ●●●●● ●●●●● ●●●○● ●●●○●
 ●●●○● ●●●●● ●●●●● ●●●○●
请求出W(10^6)。

Links booklink

Contact Us: admin [ a t ] ucptt.com