日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

AGC034 F - RNG and XOR

發布時間:2024/7/5 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AGC034 F - RNG and XOR 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡要題意 : \(0\)\(2^n-1\) 的數每一個數有一個出現概率\(p_i\) (保證\(\sum p_i =1\)) ,數x初始是0,每次異或上出現的數,對每個數求x最先變成這個數的期望次數

首先轉化問題,考慮我們求的相當于是每個數變成0的期望次數。

于是設\(x[i]\)表示i的答案

\[ \begin {aligned} x[i] &= \sum x[j]*p_{i\ xor\ j} + 1 \ (i>0) \\ x[0] &= 0 \end {aligned} \]

寫成異或卷積

\[ \lbrace x[0],x[1],x[2],... \rbrace XOR \lbrace p[0],p[1],p[2],... \rbrace = \lbrace x[0] + {2^n} -1,x[1]-1,x[2]-1,... \rbrace \]

\[ \lbrace x[0],x[1],x[2],... \rbrace XOR \lbrace p[0]-1,p[1],p[2],... \rbrace = \lbrace {2^n} -1,-1,-1,... \rbrace \]

然后異或卷積下做一次求逆就行了。

注意的是0這個位置是{0,0},這個可以用x[0]=0還原。

代碼

#include<bits/stdc++.h> using namespace std; typedef long long ll; const int mod=998244353; inline int add(int a,int b){a+=b;return a>=mod?a-mod:a;} inline int sub(int a,int b){a-=b;return a<0?a+mod:a;} inline int mul(int a,int b){return (ll)a*b%mod;} inline int qpow(int a,int b){int ret=1;for(;b;b>>=1,a=mul(a,a))if(b&1)ret=mul(ret,a);return ret;} const int inv2=qpow(2,mod-2); /* math */ int n,s; inline void FWT(int *t,int n,int type){//xorfor(int step=1;step<n;step<<=1)for(int i=0;i<n;i+=step<<1)for(int j=0;j<step;j++){int x=t[i+j],y=t[i+j+step];t[i+j]=add(x,y),t[i+j+step]=sub(x,y);if(type==-1)t[i+j]=mul(t[i+j],inv2),t[i+j+step]=mul(t[i+j+step],inv2);} } const int N=1<<18; int p[N],a[N];int main() {cin >> n;for(int i=0;i<1<<n;i++)scanf("%d",&p[i]),s=add(s,p[i]);s=qpow(s,mod-2);for(int i=0;i<1<<n;i++)p[i]=mul(p[i],s);for(int i=1;i<1<<n;i++)a[i]=mod-1;a[0]=(1<<n)-1;p[0]=sub(p[0],1);FWT(a,1<<n,1),FWT(p,1<<n,1);for(int i=0;i<1<<n;i++)a[i]=mul(a[i],qpow(p[i],mod-2));FWT(a,1<<n,-1);for(int i=0;i<1<<n;i++){printf("%d\n",sub(a[i],a[0]));} }

轉載于:https://www.cnblogs.com/weiyanpeng/p/11005606.html

總結

以上是生活随笔為你收集整理的AGC034 F - RNG and XOR的全部內容,希望文章能夠幫你解決所遇到的問題。

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