日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

筱玛爱游戏——线性基

發布時間:2025/5/22 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 筱玛爱游戏——线性基 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

鏈接:https://ac.nowcoder.com/acm/contest/946/E
來源:牛客網-----------------------------------------------------------------------------------------------

題解:
  一.首先得先學“線性基”。
    不知道的可以不用往下看了。
   
這里只說下要用到的關于“線性基”的性質:線性基集合中的任何子集的異或和都不會為0
  
   
二.如果 插入的這個數的二進制 第i位 為 1,而 線性基集合 的二進制位數剛好沒有 第 i 位,
     則說明該數可以選,并且不會使得線性基集合子集

     異或和 位 0 的情況出現。我們就可以統計一下有多少個數可以選的,然后根據可選個數判斷奇偶性就可以知道是先手還是后手贏了。
//#pragma comment(linker, "/STACK:1024000000,1024000000") //#pragma GCC optimize(2) //#include <bits/stdc++.h> #include <algorithm> #include <iostream> #include<sstream> #include<iterator> #include<cstring> #include<string> #include<cstdio> #include<cctype> #include<vector> #include<deque> #include<queue> #include<stack> #include<map> #include<list> #include<set>using namespace std; typedef double dou; typedef long long ll; typedef pair<int, int> pii;#define pai acos(-1.0) #define M 200005 #define inf 1e18 #define mod 1000000007 #define left k<<1 #define right k<<1|1 #define W(a) while(a) #define ms(a,b) memset(a,b,sizeof(a))ll num[M]; ll ans, n, m, t;int insert(ll x) {for (int i = 61; i >= 0; i--){if (x >> i & 1){if (!num[i])//如果線性基二進制中沒有這一位,那就是可以選這個數 {num[i] = x;return 1;//可選數+1 }x ^= num[i];}}return 0;//如果這個數的每一位都和線性基二進制重合,那么就是不可以選的 }int main() {ios::sync_with_stdio(false);cin >> n;for (int i = 1; i <= n; i++){cin >> t;ans+=insert(t);//插入線性基 }if (ans&1) cout << "First" << endl;else cout << "Second" << endl;return 0; }

轉載于:https://www.cnblogs.com/caibingxu/p/11142183.html

總結

以上是生活随笔為你收集整理的筱玛爱游戏——线性基的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。