51nod 1714 B君的遊戲

2021-07-22 17:53:08 字數 468 閱讀 3338

題意:玩兒遊戲,可以把乙個數x變成xi,xi&x == x,問先手能不能贏

題解:這個轉換,也就說把x變成二進位制後,只能在原來有1的位置上寫1,並且,至少有一位不寫1

很容易想到,乙個數的sg值,只跟這個數的二進位制有多少個1有關,轉換也很好想,但時間肯定來不及

其實只要把所有(<64)的sg值打表出來即可

以前也想到過這種打表,當時資料很大,好像有1e5,被隊友狠狠嘲笑了一番

下面是打表,真的是純暴力,本地都跑了好久

int sg[110];

int vis[30000010];

void init();

int main()

ans^=sg[sum];

}if(ans) printf("b\n");

else printf("l\n");

}return 0;

}

51nod 1714 B君的遊戲

先上 再說吧 include includeusing namespace std long long n,num,sum int main num 2 if x 2 1 if sum 9 0 int main int sum 0 for int i 1 i 64 i if b i 2 sum if...

51NOD 1629 B君的圓錐

1629 b君的圓錐 基準時間限制 1 秒 空間限制 131072 kb 分值 10 難度 2級演算法題 b君要用乙個表面積為s的圓錐將白山雲包起來。b君希望包住的白山雲體積盡量大,b君想知道體積最大可以是多少。注意圓錐的表面積包括底面和側面。input 一行乙個整數,表示表面積s。1 s 10 9...

51nod 1629 B君的圓錐

1629 b君的圓錐 基準時間限制 1 秒 空間限制 131072 kb 分值 10 難度 2級演算法題 b君要用乙個表面積為s的圓錐將白山雲包起來。b君希望包住的白山雲體積盡量大,b君想知道體積最大可以是多少。注意圓錐的表面積包括底面和側面。input 一行乙個整數,表示表面積s。1 s 10 9...