hdu 3404 Switch lights
来源:互联网 发布:淘宝死店盘活 编辑:程序博客网 时间:2024/05/23 01:45
黑书指导书 p205
Turning Corners游戏
Nim积 + Nim和 模板
#include<iostream>#include<cstring>#include<cstdio>using namespace std;int sg[20][20];int f(int,int);//声明一下,因为f与g互相嵌套调用int g(int x, int y)//计算2^x与2^y的nim积{ if(sg[x][y] != -1)//查备忘录 { return sg[x][y]; } if(!x)//x==0也就是1与2^y的nim积,等于2^y { return sg[x][y] = 1<<y; } if(!y)//同上 { return sg[x][y] = 1<<x; } int ans=1,k=1,t; int x1=x,y1=y; while(x||y)//再将x和y分为二进制,这里计算那些普通乘积的(即对应二进制位不同的) { t = 1<<k;//从此位得到的最终的数2^k if((x&1||y&1) && !((x&1)&&(y&1)))//该位不同 { ans *= t; } x >>= 1; y >>= 1; k <<= 1;//从此位得到的指数(本身也是2的幂) } k = 1; x = x1; y = y1; while(x||y)//计算那些相同的fermat 2-power 数,与已得出的数的nim积 { t = 1<<k; if((x&1)&&(y&1))//该位相同 { ans = f(ans,t/2*3); } x >>= 1; y >>= 1; k <<= 1;//从此位得到的指数(本身也是2的幂) } return (sg[x1][y1] = ans);}int f(int x, int y)//计算二维的nim积{ if(!x || !y)return 0; if(x == 1)return y; if(y == 1)return x; int ans = 0; for(int i = x,a = 0; i; i>>=1,a++)//完成(将x和y分解后)按分配律计算其积 { if((i&1)==0)continue;//该位(bit)是1才计算,否则跳过 for(int j = y,b = 0; j; j>>=1,b++) { if((j&1)==0)continue; ans ^= g(a,b); } } return ans;}int main(){ int x,y,t; int n,ans; scanf("%d",&t); while(t--) { memset(sg,-1,sizeof(sg)); scanf("%d",&n); ans = 0; while(n--) { scanf("%d%d",&x,&y); ans ^= f(x,y); } puts(ans ? "Have a try, lxhgww." : "Don't waste your time."); } return 0;}
- hdu 3404 Switch lights
- HDU 3404 Switch lights (NIM 积)
- HDU-3404 Switch lights(NIM积)
- hdu3404 Switch lights
- hdu3404 Switch lights-----NIM积
- hdu3404 Switch lights 求NIM积
- hdu 4770 Lights Against Dudely
- HDU 4770 Lights Against DudelyLights
- HDU:4770 Lights Against Dudely
- HDU 4770 Lights Against Dudely
- hdu 4770 Lights Against Dudely
- hdu 4770 Lights Against Dudely
- HDU 4770 Lights Against Dudely
- HDU 4770 Lights Against Dudely
- HDU 4770 Lights Against Dudely
- hdu 4770 Lights Against Dudely
- hdu 4770 Lights Against Dudely
- hdu 4770 Lights Against Dudely
- openpyxl 读写excel2007使用笔记
- 简单记录,采样频率更改。
- 关于java IO中write的个人理解
- 求一个字符串中最长连续子串
- C语言编程常见问题解答之数组
- hdu 3404 Switch lights
- 那些年,我们捧读过的C经典
- 基于session的spring国际化配置
- CRM上线之路 走上了CRM实施顾问-第19天上班 -第五周
- cocos2d-x 内存管理 随笔
- 【妙用win7文件库轻松找到工作文件】
- iOS ARC
- struts2注解
- 广州传智播客.net 05期训练营——毕业大狂欢PartyTime!