摘要: 博弈论+二分!后一人会尽量选前一人切小的一块切!!代码如下: 1 #include 2 #include 3 #define I1(x) scanf("%d",&x) 4 #define I2(x,y) scanf("%d%d",&x,&y) 5 int main(){ 6 int n,t,k=0,a,b; 7 __int64 m1,m2; 8 I1(t); 9 while(t--){10 I1(n);11 m1=m2=0;12 for(int i=1;i1&&b>1){15 a>>... 阅读全文
posted @ 2013-08-14 22:25 _随心所欲_ 阅读(271) 评论(0) 推荐(0)
摘要: 思路: 其本质为阶梯博弈; 阶梯博弈:博弈在一列阶梯上进行,每个阶梯上放着自然数个点,两个人进行阶梯博弈...每一步则是将一个集体上的若干个点(>=1)移到前面去,最后没有点可以移动的人输;在本题中 1,3,4 的状态不能转移到其他状态; 其他每个状态皆可转移; 且位置特定, 如 2->1 , 5->4, 6->3, 7->2 , 8->1 9->6.....其本质我们有N级阶梯,现在要在 %3 的余数间转移, 0->0, 1->2, 2->1; 其最后的结果为1, 3, 4; 那么他们的转移的步数的奇偶性也会确定;我们只要选择步数为 阅读全文
posted @ 2013-08-14 21:37 _随心所欲_ 阅读(262) 评论(0) 推荐(0)
摘要: 找规律的博弈论!!很容易发现当n,m都为奇数时先手必败!代码如下: 1 #include 2 #include 3 #define I(x,y) scanf("%d%d",&x,&y) 4 int main(){ 5 int m,n; 6 while(I(n,m)&&(n+m)){ 7 if(!(n&1)||!(m&1)) puts("Wonderful!"); 8 else puts("What a pity!"); 9 }10 return 0;11 }View Code 阅读全文
posted @ 2013-08-14 21:00 _随心所欲_ 阅读(168) 评论(0) 推荐(0)
摘要: 很显然的nim游戏的变形,很好找规律先手败:2,3,5,8,13……其他先手胜。即满足菲波拉数列。代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #define ll __int64 9 #define pi acos(-1.0)10 #define MAX 5000011 #define I(x) scanf("%d",&x)12 using namespace std;13 int f[44];14 int main(){15 int i,n 阅读全文
posted @ 2013-08-14 20:52 _随心所欲_ 阅读(190) 评论(0) 推荐(0)
摘要: 数学题!从M到1计算,在计算i的时候,算出原序列是i的倍数的个数cnt;也就是将cnt个数中的cnt-(n-k)个数变掉,n-cnt个数变为i的倍数。且i的倍数为t=m/i;则符合的数为:c[cnt][n-k]*t^(n-cnt)*(t-1)*(cnt-(n-k)).这样得到的是所有i的倍数,还要减去2*i,3*i……代码如下: 1 #include 2 #include 3 #define M 1000000007 4 #define MM 300001 5 #define ll __int64 6 #define I(x) scanf("%d",&x) 7 in 阅读全文
posted @ 2013-08-14 16:30 _随心所欲_ 阅读(229) 评论(0) 推荐(0)