根据历史传说记载,国际象棋起源于古印度,至今见诸于文献最早的记录是在萨珊王朝时期用波斯文写的。据说,有位印度教宗师见国王自负虚浮,决定给他一个教训。他向国王推荐了一种在当时尚无人知晓的游戏。国王当时整天被一群溜须拍马的大臣们包围,百无聊赖,很需要通过游戏方式来排遣郁闷的心情。
国王对这种新奇的游戏很快就产生了浓厚的兴趣,高兴之余,他便问那位宗师,作为对他忠心的奖赏,他需要得到什么赏赐。宗师开口说道:请您在棋盘上的第一个格子上放1粒麦子,第二个格子上放2粒,第三个格子上放4粒,第四个格子上放8粒……即每一个次序在后的格子中放的麦粒都必须是前一个格子麦粒数目的倍数,直到最后一个格子第64格放满为止,这样我就十分满足了。 “好吧!”国王哈哈大笑,慷慨地答应了宗师的这个谦卑的请求。
然而等到麦子成熟时,国王才发现,按照与宗师的约定,全印度的麦子竟然连棋盘一半的格子数目都不够。这位宗师索要的麦粒数目实际上是天文数字。
无奈的国王只好和这位宗师协商换一种奖励方式。
1、将棋盘扩大为N行N列;
2、将大量的麦子随机放在这个棋盘中;
3、宗师可以选择从任意一边出发,按照国际象棋中国王的移动规则从一个格子移动的另一个格子,并从相对的另一边离开;
4、宗师可以将自己到达的格子中的麦子收归自己所有
5、宗师必须在收获N个格子的麦子后从另一边正常离开棋盘,否则所有的收获无效。
聪明的宗师仔细地观察了棋盘,顺利获得了自己的最大收益。
请您编程看看他最多可获得多少粒麦子。
求解题思路,用了暴力dfs时间超限了。