摘要:
博弈(给出牛人的解题思路)先引入必胜点和必败点两个概念: 必败点(P点) :前一个选手(Previous player)将取胜的位置称为必败点。 必胜点(N点) :下一个选手(Next player)将取胜的位置称为必胜点。算法实现: 步骤1:将所有终结位置标记为必败点(P点);(终结位置指的是不能将游戏进行下去的位置) 步骤2:将所有一步操作能进入必败点(P点)的位置标记为必胜点(N点) 步骤3:如果从某个点开始的所有一步操作都只能进入必胜点(N点) ,则将该点标记为必败点(P点) ; 步骤4:如果在步骤3未能找到新的必败(P点),则算法终止;否则,返回到步骤2。解题思路: 由于每次都是从p 阅读全文
摘要:
这个题要分情况讨论:就是当k>=n时,first一定赢;当k==1时,当k为奇数时,first赢,反则second赢;当k<n&&k!=1一定是second赢,因为每次无论first怎么取,second一定可以使之对称并且是偶数个;那么second一定会赢;View Code #include<iostream> #include<cstdio> #include<cstdlib> #include<algorithm> #include<cmath> #include<queue> #incl 阅读全文
摘要:
我们发现后手是堵不死先手的,如果后手不管先手任他走,那么先手要先一步走到;View Code #include<iostream> #include<cstdio> #include<cstdlib> #include<algorithm> #include<cmath> #include<queue> #include<set> #include<map> #include<cstring> #include<vector> #include<string> # 阅读全文