蓝桥杯 高僧斗法(nim博弈)
2017-04-19 12:21
225 查看
只为写一篇与网上博文不相同的代码,我的代码的主要思想是:移动某个位置的石子(小和尚),奇数位向前移动会减少当前一组的nim值,偶数位向前移动会增加当前组的nim值。因此使nim和为0的情况(因为可使某组nim增加或减少)不仅仅只有移动奇数堆,所以不是阶梯博弈。
#include <algorithm>
#include <iostream>
#include <string.h>
#include <cstdio>
using namespace std;
int jk[105], hk[105];
char c;
int main(){
int i, n, k, ans, m, xr, j;
n = 1, xr = 0;
while(scanf("%d", &k)){
c = getchar();
jk[n++] = k;
if(c == '\n') break;
}
--n; m = n/2;
for(i = 2; i <= n; i += 2){
hk[i/2] = jk[i] - jk[i-1] - 1;
xr ^= hk[i/2];
}
if(xr == 0){
cout << -1 << endl;
}
else{
for(i = 1; i < n; ++i){
for(j = 1; jk[i]+j < jk[i+1]; ++j){
if(i%2 == 1){
hk[(i+1)/2] -= j;
}
else if(i/2 > 0) hk[i/2] += j;
ans = 0;
for(int l = 1; l <= m; ++l){
ans ^= hk[l];
}
if(ans == 0){
printf("%d %d\n", jk[i], jk[i]+j);
break;
}
if(i%2 == 1){
hk[(i+1)/2] += j;
}
else if(i/2 > 0) hk[i/2] -= j;
}
}
}
return 0;
}
不懂我的代码的可以评论问我,继续加油~
#include <algorithm>
#include <iostream>
#include <string.h>
#include <cstdio>
using namespace std;
int jk[105], hk[105];
char c;
int main(){
int i, n, k, ans, m, xr, j;
n = 1, xr = 0;
while(scanf("%d", &k)){
c = getchar();
jk[n++] = k;
if(c == '\n') break;
}
--n; m = n/2;
for(i = 2; i <= n; i += 2){
hk[i/2] = jk[i] - jk[i-1] - 1;
xr ^= hk[i/2];
}
if(xr == 0){
cout << -1 << endl;
}
else{
for(i = 1; i < n; ++i){
for(j = 1; jk[i]+j < jk[i+1]; ++j){
if(i%2 == 1){
hk[(i+1)/2] -= j;
}
else if(i/2 > 0) hk[i/2] += j;
ans = 0;
for(int l = 1; l <= m; ++l){
ans ^= hk[l];
}
if(ans == 0){
printf("%d %d\n", jk[i], jk[i]+j);
break;
}
if(i%2 == 1){
hk[(i+1)/2] += j;
}
else if(i/2 > 0) hk[i/2] -= j;
}
}
}
return 0;
}
不懂我的代码的可以评论问我,继续加油~
相关文章推荐
- 蓝桥杯 高僧斗法(Nim博弈)
- 第四届蓝桥杯决赛第四题 高僧斗法 (nim博弈 sg函数)深究
- 蓝桥杯 nim博弈 高僧斗法
- 蓝桥杯C语言培训5 博弈问题的思路 例6 高僧斗法(尼姆堆)
- 蓝桥杯考试 博弈问题 高僧斗法
- 蓝桥杯 历届试题 高僧斗法 (阶梯nim)
- Nim博弈扩展+高僧斗法
- poj Georgia and Bob + 蓝桥杯决赛原题:高僧斗法 阶梯博弈大法
- 蓝桥杯 历届试题 高僧斗法
- 蓝桥杯练习系统真题14——高僧斗法
- 历届试题 高僧斗法 【阶梯博弈】
- 蓝桥杯 历届试题【高僧斗法】
- 蓝桥杯 高僧斗法
- 历届试题 高僧斗法 阶梯博弈
- 历届试题 高僧斗法(博弈)
- 高僧斗法 蓝桥杯
- 【2013年第四届蓝桥杯C/C++程序设计本科B组决赛 高僧斗法(编程大题) 】 + Nim 博弈
- 蓝桥杯 历届试题 高僧斗法(尼姆博弈)
- Nim算法------高僧斗法
- 蓝桥杯 历届试题 高僧斗法