摘要:
1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 ll a,c,p,mod; 5 char t[1001]; 6 ll phi(ll n) 7 { 8 ll res=n; 9 for(int i=2;i*i<=n;i++){ 10 if(n%i==0){ 11 res=res/i*(i-1); 12 阅读全文
摘要:
下面是一个二人小游戏:桌子上有M堆扑克牌;每堆牌的数量分别为Ni(i=1…M);两人轮流进行;每走一步可以任意选择一堆并取走其中的任意张牌;桌子上的扑克全部取光,则游戏结束;最后一次取牌的人为胜者。现在我们不想研究到底先手为胜还是为负,我只想问大家:——“先手的人如果想赢,第一步有几种选择呢?” I 阅读全文
摘要:
尼姆博弈(Nimm Game): 尼姆博弈指的是这样一个博弈游戏:有任意堆物品,每堆物品的个数是任意的,双方轮流从中取物品,每一次只能从一堆物品中取部分或全部物品,最少取一件,取到最后一件物品的人获胜。 结论就是:把每堆物品数全部异或起来,如果得到的值为0,那么先手必败,否则先手必胜。 阅读全文
摘要:
有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。 这种情况下是颇为复杂的。我们用(ak,bk)(ak ≤ bk ,k=0,1,2,…,n)表示两堆物品的数量并称其为局势,如果甲面对(0,0),那么甲已经输了,这种局势我们称为奇异局势。 阅读全文
摘要:
(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果n=(m+1 阅读全文
摘要:
1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 #include<string.h> 5 using namespace std; 6 typedef long long ll; 7 const ll maxn=1e5+ 阅读全文
摘要:
1 #include<cstdio> 2 #include<algorithm> 3 #include<string.h> 4 #include<math.h> 5 #include<queue> 6 #include<iostream> 7 using namespace std; 8 const 阅读全文
摘要:
裸题,求A^n次后的对角线数字之和 阅读全文
摘要:
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 13 using namespace std; 14 int mod; 15 int n; 16 st... 阅读全文
摘要:
这道题的难点就是构造出这个矩阵 假如是这样的一个式子 F[n]=F[n-2]*2+F[n-1],那就很简单 但是,多了个i^4,这就很难办了。 所以,我们要着重处理的就是这一部分 那么 (n+1)^4 = n^4 + 4n^3 + 6n^2 + 4n + 1 1 ans.a[0][0]=bb%mod 阅读全文