題意:給你\(n\)堆石子玩尼姆博弈,每堆石子可以是\(a_i\)也可以是\(b_i\),選擇概率相等且每堆選擇相互獨立,求先手必勝(異或不為0)的概率
首先需要找出一種優雅的策略表示方法(利用異或的思想)
我們需要處理的是\(c_i=a_i \ xor \ b_i\)的線性基,然後用\(s\)代表\(a_i\)的整體異或,那麼$s \ xor \ \((\)c_i\(的任意組合)即可表示原問題的選擇策略
那麼原問題首先轉換為\)c_i\(是否可以湊出\)s$
剩下的我在**中已經注釋
ps.窩的天cf才a題就這麼可怕的嗎
#include#include#include#include#include#include#include#include#include#include#include#include#include#define rep(i,j,k) for(register int i=j;i<=k;i++)
#define rrep(i,j,k) for(register int i=j;i>=k;i--)
#define erep(i,u) for(register int i=head[u];~i;i=nxt[i])
#define iin(a) scanf("%d",&a)
#define lin(a) scanf("%lld",&a)
#define din(a) scanf("%lf",&a)
#define s0(a) scanf("%s",a)
#define s1(a) scanf("%s",a+1)
#define print(a) printf("%lld",(ll)a)
#define enter putchar('\n')
#define blank putchar(' ')
#define println(a) printf("%lld\n",(ll)a)
#define ios ios::sync_with_stdio(0)
using namespace std;
const int maxn = 5e5+11;
const double eps = 1e-7;
typedef long long ll;
typedef unsigned long long ull;
const ll mod = 10086;
unsigned int seed = 17;
const ll inf = 1ll<<60;
ll read()
while(ch>='0'&&ch<='9')
return x*f;
}ll b[66];
int cal(int n,ll a)}}
}rep(i,0,62) if(b[i]) cnt++;
return cnt;
}ll a[maxn],b[maxn],c[maxn],n;
int main()
ll s=0;
rep(i,1,n) s^=a[i],c[i]=a[i]^b[i];
int cnt=cal(n,c);
rep(i,0,62) if(s>>i&1) s^=b[i];
//注意如果i位沒有別瞎異或,相當於構造時的插入但不更新的操作
printf("1/1\n");
}else
}return 0;
}
6 6 2 赫夫曼編碼
typedef struct htnode,huffmancode typedef char huffmancode 求報文赫夫曼編碼的演算法 void huffmancoding huffmantree ht,huffmancode hc,int w,int n m 2 n 1 0號單元棄用 ht...
6 6 2 婚姻資訊
婚姻資訊主要是描述資訊主體的婚姻狀況 配偶的身份標識 工作單位 等資訊 婚姻資訊資料塊由婚姻資訊單元構成,該資訊單元直接由資料項構成,見表 6 10 表 6 10 婚姻資訊單元所含資料項 資料項名稱 資料項描述 資料型別 婚姻狀況 反映資訊主體婚姻狀況的 表參照國標 個人基本資訊分類與 第 2 部分...
elasticsearch6 6 2 建立使用者
生成金鑰 複製 data escluster esmaster config es gpdi.p12 檔案到各節點config目錄下 在每個節點配置中新增如下內容 data escluster esmaster config elasticsearch.yml xpack.security.tran...