Boapath

   :: 首页  :: 新随笔  ::  ::  :: 管理

2014年1月17日

摘要: 题意:一个n*n的棋盘,一开始的时候棋子在一个角落的格子里,每次可以移动棋子到上下左右的相邻格子中(不能超过边界,而且不能走走过的格子);当不能走时,败。现在8600先走,问最后谁赢。题目分析: 想了几个小时,然后没有打表,所以去搜了解题报告。 最后的结论很简洁,所以先列出结论吧: 该结论基于一个前提:还没走过的格子数为奇数时,先手胜。 所以: n为偶数时,除去开局时棋子自己占的一格,余下n*n-1格,为奇数,先手胜。 同理,n为奇数时,后手胜。 以上。 由于在下(有时候)有点固执,所以很多东西并不想只知道结论,而想知道为什么。所以我搜了很多份解题报告,... 阅读全文
posted @ 2014-01-17 22:15 Boapath 阅读(816) 评论(0) 推荐(0) 编辑

摘要: 题目大意:有2个数,2个人轮流把大的数(设为a)减去小的数(设为b)的倍数(不能超过大的数),一直到有一方能把某个数减到0,该方获胜。Stans先走,问最后赢的是谁。题目分析:每次减去b的倍数,那么直到不能减b(再减去1个b都会变成负数)时,就进行下2个数的“新”一轮减法了。什么时候这两个数(a,b)不能减(原本b不作为减数)?当a'小于b的时候,其实也就是当a减去(a/b)的时候,这时候a' = a%b。当局面变成(a',b)时,事实上,大数变成了b,小数变成了a'。是不是觉得很熟悉?对的,这不就是GCD么?然后每次从大的数(a)中减去x个小的数(b),其实很 阅读全文
posted @ 2014-01-17 12:40 Boapath 阅读(605) 评论(0) 推荐(0) 编辑