51nod 1714 B君的游戏
来源:互联网 发布:淘宝免费申请试用在哪 编辑:程序博客网 时间:2024/05/17 05:51
题意:玩儿游戏,可以把一个数x变成xi,xi&x == x,问先手能不能赢
题解:这个转换,也就说把x变成二进制后,只能在原来有1的位置上写1,并且,至少有一位不写1
很容易想到,一个数的sg值,只跟这个数的二进制有多少个1有关,转换也很好想,但时间肯定来不及
其实只要把所有(<64)的sg值打表出来即可
以前也想到过这种打表,当时数据很大,好像有1e5,被队友狠狠嘲笑了一番
下面是打表,真的是纯暴力,本地都跑了好久
int sg[110];int vis[30000010];void init(){ memset(sg,0,sizeof(sg)); for(int i=1;i<=64;i++){ for(int j1=1;j1<i;j1++){ for(int j2=j1;j2<i;j2++){ for(int j3=j2;j3<i;j3++){ for(int j4=j3;j4<i;j4++){ for(int j5=j4;j5<i;j5++){ for(int j6=j5;j6<i;j6++){ for(int j7=j6;j7<i;j7++){ int temp=sg[j1]^sg[j2]^sg[j3]^sg[j4]^sg[j5]^sg[j6]^sg[j7]; vis[temp]=i; } } } } } } } for(int j=0;;j++){ if(vis[j]!=i){ sg[i]=j; break; } } cout<<i<<' '<<sg[i]<<endl; }}int main(){ init(); return 0;}
剩下的就是直接异或sg[1的个数]就可以了
int sg[] = {0, 1, 2, 4, 8, 16, 32, 64, 128, 255, 256, 512, 1024, 2048, 3855, 4096, 8192, 13107, 16384, 21845, 27306, 32768, 38506, 65536, 71576, 92115, 101470, 131072, 138406, 172589, 240014, 262144, 272069, 380556, 524288, 536169, 679601, 847140, 1048576, 1072054, 1258879, 1397519, 2005450, 2097152, 2121415, 2496892, 2738813, 3993667, 4194304, 4241896, 4617503, 5821704, 7559873, 8388608, 8439273, 8861366, 11119275, 11973252, 13280789, 16777216, 16844349, 17102035, 19984054, 21979742, 23734709};int main(){ int n; LL x; while(cin>>n){ int ans=0; while(n--){ scanf("%lld",&x); int sum=0; while(x){ if(x&1) sum++; x/=2; } ans^=sg[sum]; } if(ans) printf("B\n"); else printf("L\n"); } return 0;}
0 0
- 51nod-1714 B君的游戏
- 51nod 1714 B君的游戏
- 51Nod-1714-B君的游戏
- 51nod 1714 B君的游戏
- 51nod 1714 B君的游戏
- 51nod 1714-B君的游戏(尼姆博弈)
- 51NOD 算法马拉松15(脱欧专场) B君的游戏(博弈)
- 51NOD 1629 B君的圆锥
- 51nod B君的圆锥
- 51nod 1632 B君的连通
- 51nod-【1629 B君的圆锥】
- 51Nod 1629 B君的圆锥
- 51nod 1629 B君的圆锥
- 51nod-1632B君的连通
- 51Nod 1629 B君的圆锥
- 51nod 1630 B君的竞技场
- 51Nod-1630-B君的竞技场
- 51nod 1629 B君的圆锥
- [随机化 构造] Codeforces 717H Bubble Cup 9 - Finals H. Pokermon League challenge
- 数据库系统概论之第二章关系数据库
- [构造] Codeforces 717E Bubble Cup 9 - Finals E. Paint it really, really dark gray
- 51nod 1212 无向图最小生成树
- 2016.09.10【初中部 NOIP普及组 】模拟赛题解
- 51nod 1714 B君的游戏
- SQL子查询的一些例子
- 1-XHTML导论
- 常用的几个UI美化
- 51Nod-1390-游戏得分
- jQuery使用ajaxSubmit()提交表单示例
- DOM解析XML和生成
- 时钟三:用内部中断实现时钟
- Tarjan求强连通分量算法