摘要:
这道题没说a b最大多少,所以要声明为long long型,不然会WA! 道理很简单,(默认a>=b)a和b只有以下三种关系: 1.a%b==0 :这种关系下,可能是a/b为整数,也可能是a和b都为0,不论哪种,都会是先者胜; 2.a2*b :这种关系下,下一步总能变成(a,a%b)和(a,a%b+b)两种状态,而这两种状态又与第2种状态(a #include using ... 阅读全文
摘要:
传送门 以下复制自此处:http://www.xuebuyuan.com/2028180.html 博弈论题目可以用寻找必败状态的方法解决。 第一个必败状态是2001.11.04。由此可以推出其他任何时间的状态。对于除2001.11.04外的其他任何时间,present状态是由能移动到的下两个next状态决定的(当然有些时间只有一个next状态),比如1924.12.19的... 阅读全文
摘要:
传送门 //有n堆,AB轮流从n堆的一堆中移任意个,可以扔掉,也可以移给其他堆中的一堆 //最先移完的胜 //如果n堆中两两堆数目相等,那肯定是B胜 //但只要有非两两相同的,如xyz,A先, //A可以从最多的那堆(z)移y-x个到x堆,yyp,最终移走p的一定是A #include #include #include #include using namespace std; int mai... 阅读全文
摘要:
传送门 #include #include #include using namespace std; int main() { int n; while(~scanf("%d",&n)) { int a,res=0; int c=0,g=0; for(int i=0;i=2) c++; else i... 阅读全文
摘要:
传送门 #include #include #include using namespace std; int main() { int t; scanf("%d",&t); while(t--) { int n,a,res=0; int c=0,g=0;//¹Âµ¥¶Ñ¡¢³äÔ£¶Ñ scanf("%d",&n)... 阅读全文
摘要:
传送门 #include #include #include #include using namespace std; int main() { int n; while(~scanf("%d",&n)) { int a,res=0; for(int i=0;i<n;i++) { scanf("%d... 阅读全文
摘要:
传送门 #include #include #include #include #include using namespace std; int main() { int a,b; while(~scanf("%d%d",&a,&b)) { int ok=1; if(a>b) swap(a,b); int k=b-a; ... 阅读全文
摘要:
经过几天的学习和刷题,总算对博弈论的基础懂了一些,学习过程中参考了以下两位的总结: 博弈总结 博弈论题目列表 博弈题目小结 下面列出一些基础博弈的结论定理(证明过程略): (一)巴什博弈(Bash): 一个堆中有n个物体,两人轮流取,每次至少取1个,至多取m个,最后取完者胜。 取胜法则:令n=(m... 阅读全文