POJ 3553 Light Switching Game 博弈论 nim积 sg函数
http://poj.org/problem?id=3533
变成三维的nim积。。前面hdu那个算二维nim积的题的函数都不用改,多nim积一次就过了。。。longlong似乎不必要但是还是加上了
代码
1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<cmath> 5 #include<iostream> 6 #include<map> 7 #include<ctime> 8 using namespace std; 9 long long n; 10 long long sg[21][21]={}; 11 long long f(long long,long long); 12 long long g(long long x,long long y){ 13 if(sg[x][y]!=-1)return sg[x][y]; 14 if(!x)return sg[x][y]=1<<y; 15 if(!y)return sg[x][y]=1<<x; 16 long long ans=1,k=1,t; 17 long long x1=x,y1=y; 18 while(x||y){ 19 t=1<<k; 20 if((x^y)&1){ 21 ans*=t; 22 } 23 x>>=1;y>>=1;k<<=1; 24 } 25 k=1;x=x1;y=y1; 26 while(x||y){ 27 t=1<<k; 28 if((x&y)&1){ 29 ans=f(ans,t/2*3); 30 } 31 x>>=1;y>>=1;k<<=1; 32 }return sg[x1][y1]=ans; 33 } 34 long long f(long long x,long long y){ 35 if(!x||!y)return 0; 36 if(x==1)return y; 37 if(y==1)return x; 38 long long ans=0; 39 for(long long i=x,a=0;i;i>>=1,a++){ 40 if(!(i&1))continue; 41 for(long long j=y,b=0;j;j>>=1,b++){ 42 if(!(j&1))continue; 43 ans^=g(a,b); 44 } 45 }return ans; 46 } 47 int main(){ 48 memset(sg,-1,sizeof(sg)); 49 while(~scanf("%lld",&n)){ 50 long long ans=0,x,y,z; 51 for(long long i=1;i<=n;i++){ 52 scanf("%lld%lld%lld",&x,&y,&z); 53 ans^=f(z,f(x,y)); 54 } 55 if(ans)printf("No\n"); 56 else printf("Yes\n"); 57 } 58 return 0; 59 }
View Code
转载于:https://www.cnblogs.com/137shoebills/p/8340884.html
POJ 3553 Light Switching Game 博弈论 nim积 sg函数相关推荐
- 闲来无事刷水题、简单博弈论专题、sg函数、洛谷
记 今天闲来无事,不想刷codeforces了,到洛谷提高组训练营找几道水题刷着玩玩(虽然自己早已过了打OI的年纪)- 简单博弈论专题 P1199 三国游戏 这么考虑,由于电脑总是不能让我搭配出当前能 ...
- NIM博弈+SG函数求解
ICG 给定一个有向无环图和一个起始顶点上的一枚棋子,两名选手交替的将这枚棋子沿有向边进行移动,无法移动者判负. 这个游戏可以认为是所有 Impartial Combinatorial Games 的 ...
- 博弈论初步(SG函数)
讲解见此博客https://blog.csdn.net/strangedbly/article/details/51137432 理解Nim博弈,基于Nim博弈理解SG函数的含义和作用. 学习求解SG ...
- 【博弈论】【SG函数】bzoj1457 棋盘游戏
一开始就必胜的特判一下. #include<cstdio> #include<cstring> #include<set> #include<algorith ...
- 剪纸游戏(博弈论)(SG函数)
文章目录 题目描述 解析 题目描述 解析 本题的关键就是SG函数的定义 尝试了一些自己直观上可能对但题解没有使用的约定方法(当然最后证明都是错的 ...),对SG的理解更深刻了一些 SG=0的含义是无 ...
- 【博弈论】【SG函数】bzoj1777 [Usaco2010 Hol]rocks 石头木头
仅有距根节点为奇数距离的节点的石子被移走对答案有贡献,∵即使偶数的石子被移走,迟早会被再移到奇数,而奇数被移走后,不一定能够在移到偶数(到根了). 最多移L个:石子数模(L+1),比较显然,也可以自己 ...
- 博弈论(Nim游戏、有向图游戏之SG函数)
这里写目录标题 经典NIM游戏 Nim游戏属于公平组合游戏ICG 有向图游戏(SG函数) Mex运算 SG函数 单个有向图(一堆石子) 求SG值(记忆化递归) 有向图游戏的和 ,(多个有向图(多堆石子 ...
- 博弈论与SG函数(Nim游戏)
博弈论与SG函数(Nim游戏) 目录 博弈论与SG函数(Nim游戏) 游戏状态 状态图(SG图) Nim 游戏 Nim 和 SG函数 Grundy数字 组合博弈游戏 Grundy 游戏 例题 在本篇, ...
- 【甜椒ACM】博弈论入门(Nim、sg定理)
博弈论入门(Nim.sg定理) 通常由以下形式构成:给定一个游戏规则,甲.乙轮流出手行动,最后无法行动的人失败,问获胜方是谁/是否存在先手必胜策略等等. 游戏的前提是,默认"双方都最聪明&q ...
最新文章
- ORM表之间的多对多处理
- 视觉SLAM总结——LSD SLAM中关键知识点总结
- 协方差与相关系数的再理解
- OpenCV多目标跟踪与视频分析
- 盒子模型代码_果冻公开课第五课:五分钟理清盒模型的前世今生
- C语言 小游戏 电脑大概率获胜,用C语言实现简单的三子棋小游戏
- FlexCAN和CAN的关系
- Android 手机卡了怎么办
- 服务器pfx文件如何导入,linux 导入pfx 证书
- InfluxDB 2.0 原理与应用实践
- python box_箱体图Boxplot及Python绘制方
- csgo删除机器人_《CSGO》补丁突然移除补位机器人 队友掉线只能4v5!
- Oracle数据库,建库建表
- 撤销院士称号!两名原院士,被当作反面典型通报
- 阿里云 https ssl 网站配置 备案记录
- CISAW安全集成考试有了新变化
- 华三交换机配置三权账号(V7版本)
- 【比特鹏哥C语言_3.函数】
- golang chanel
- 如何利用服务虚拟化模拟缺陷?
热门文章
- 微信浏览器的html5页面显示配置等问题汇集 1,禁止微信浏览器分享页面链接 (定点更新)...
- 用黄金圈思维来思考测试
- javascript 数组排序
- buildroot的使用简介【转】
- 转:Hash, MAC,HMAC说明
- Oracle关联更新语法(T-SQL中的update...from)
- 数字内置方法详解(int/long/float/complex)
- Django开发社交类网站必备的10个第三方应用
- 关于json_decode乱码及NULL的解决方法
- Jsoup解析的例子 之 选择器