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

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

2021牛客多校6 - Gambling Monster(分治FWT优化期望dp)

發(fā)布時(shí)間:2024/4/11 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2021牛客多校6 - Gambling Monster(分治FWT优化期望dp) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目鏈接:點(diǎn)擊查看

題目大意:有一個(gè)轉(zhuǎn)盤(pán),每次轉(zhuǎn)動(dòng)得到 0~n?10\sim n?10n?1nnn 是 2 的冪)的概率分別給出。最開(kāi)始你有一個(gè)數(shù) x=0x=0x=0,每次轉(zhuǎn)動(dòng)轉(zhuǎn)盤(pán)得到一個(gè)數(shù) yyy,如果 x⊕y>xx\oplus y>xxy>x,就令 x=x⊕yx=x\oplus yx=xy,否則 xxx 不變。求使 x=n?1x=n-1x=n?1,期望轉(zhuǎn)動(dòng)轉(zhuǎn)盤(pán)的次數(shù)。

題目分析:

求期望,考慮倒著的概率 dpdpdp

設(shè) P[i]P[i]P[i] 為轉(zhuǎn)到 iii 的概率,設(shè) E[i]E[i]E[i] 代表當(dāng)前數(shù)字為 iii,到達(dá) n?1n-1n?1 的期望步數(shù),顯然 E[n?1]=0E[n-1]=0E[n?1]=0,答案是 E[0]E[0]E[0]

設(shè) S[x]S[x]S[x] 代表轉(zhuǎn)動(dòng)一次轉(zhuǎn)盤(pán)后 xxx 發(fā)生變化的概率(即變大)的概率,不難得到 S[x]=∑x⊕y>xP[y]S[x]=\sum\limits_{x\oplus y>x}P[y]S[x]=xy>x?P[y]

那么 EEE 的方程分成兩個(gè)部分也不難寫(xiě)出:E[x]=(E[x]+1)?(1?S[x])+∑x⊕y=zx<z(E[z]+1)?P[y]E[x]=(E[x]+1)*(1-S[x])+\sum\limits_{\overset{x<z}{x\oplus y=z}}(E[z]+1)*P[y]E[x]=(E[x]+1)?(1?S[x])+xy=zx<z??(E[z]+1)?P[y]

發(fā)現(xiàn)左右兩側(cè)都有 E[x]E[x]E[x],所以移一下項(xiàng)得到:
E[x]=(1?S[x])+∑x⊕y=zx<z(E[z]+1)?P[y]S[x]E[x]=\frac{(1-S[x])+\sum\limits_{\overset{x<z}{x\oplus y=z}}(E[z]+1)*P[y]}{S[x]}E[x]=S[x](1?S[x])+xy=zx<z??(E[z]+1)?P[y]?

對(duì)于 S[x]S[x]S[x],我們發(fā)現(xiàn)只需要找到 yyy 在二進(jìn)制下最高位的 111,判斷一下在 xxx 在二進(jìn)制下是否為 000 就可以確定是否存在貢獻(xiàn),這個(gè)可以 O(nlogn)O(nlogn)O(nlogn) 預(yù)處理出來(lái)

對(duì)于 ∑x⊕y=zx<z(E[z]+1)?P[y]\sum\limits_{\overset{x<z}{x\oplus y=z}}(E[z]+1)*P[y]xy=zx<z??(E[z]+1)?P[y],不難發(fā)現(xiàn)是異或卷積的形式,又因?yàn)槠谕?dpdpdp 是倒著推的,所以后面的答案會(huì)對(duì)前面的答案具有貢獻(xiàn),這個(gè)可以用 cdqcdqcdq 分治套 FWTFWTFWT 來(lái)解決

需要注意的是,在分治的過(guò)程中后面的答案會(huì)影響前面的答案,所以我們需要先遞歸右子區(qū)間,然后再遞歸左子區(qū)間

最后就是如何確定公式中 yyy 的取值范圍呢,如果每次都是取 0~n?10\sim n-10n?1 的話(huà)肯定不行,通過(guò)分析不難發(fā)現(xiàn),每次拆出來(lái)的左右區(qū)間形如:
[xxx0000]~[xxx0111]+[xxx1000]~[xxx1111][xxx0000]\sim[xxx0111]+[xxx1000]\sim[xxx1111][xxx0000][xxx0111]+[xxx1000][xxx1111]

我們上述式子中的 xxx 需要在左區(qū)間中取,zzz 需要在右區(qū)間中取,而 yyy 只需要滿(mǎn)足 y=x⊕zy=x\oplus zy=xz 即可,將上面的兩段區(qū)間進(jìn)行異或可以得到 y∈[1000,1111]y\in[1000,1111]y[1000,1111],這個(gè)每次通過(guò)位運(yùn)算求解即可,不難發(fā)現(xiàn) yyyzzz 的區(qū)間剛好是等階的

代碼:

// Problem: Gambling Monster // Contest: NowCoder // URL: https://ac.nowcoder.com/acm/contest/11257/D // Memory Limit: 524288 MB // Time Limit: 2000 ms // // Powered by CP Editor (https://cpeditor.org)// #pragma GCC optimize(2) // #pragma GCC optimize("Ofast","inline","-ffast-math") // #pragma GCC target("avx,sse2,sse3,sse4,mmx") #include<iostream> #include<cstdio> #include<string> #include<ctime> #include<cmath> #include<cstring> #include<algorithm> #include<stack> #include<climits> #include<queue> #include<map> #include<set> #include<sstream> #include<cassert> #include<bitset> #include<list> #include<unordered_map> #define lowbit(x) (x&-x) using namespace std; typedef long long LL; typedef unsigned long long ull; template<typename T> inline void read(T &x) {T f=1;x=0;char ch=getchar();while(0==isdigit(ch)){if(ch=='-')f=-1;ch=getchar();}while(0!=isdigit(ch)) x=(x<<1)+(x<<3)+ch-'0',ch=getchar();x*=f; } template<typename T> inline void write(T x) {if(x<0){x=~(x-1);putchar('-');}if(x>9)write(x/10);putchar(x%10+'0'); } const int inf=0x3f3f3f3f; const int N=1e6+100; const int mod=1e9+7; int n; LL P[N],S[N],invS[N],E[N],tmp[20],a[N],b[N]; LL q_pow(LL a,LL b) {LL ans=1;while(b) {if(b&1) {ans=ans*a%mod;}a=a*a%mod;b>>=1;}return ans; } LL inv(int x) {return q_pow(x,mod-2); } void FWTxor(LL *f,int x,int len) {for(int mid=1;(mid<<1)<=len;mid<<=1){int R=mid<<1;for(int i=0;i<len;i+=R)for(int j=0;j<mid;j++){f[i+j]=(f[i+j]+f[i+j+mid])%mod;f[i+j+mid]=(f[i+j]-f[i+j+mid]+mod-f[i+j+mid]+mod)%mod;f[i+j]=f[i+j]*x%mod;f[i+j+mid]=f[i+j+mid]*x%mod;}} } void solve(int l,int r) {if(l==r) {E[l]=(E[l]+(1-S[l]+mod)*invS[l])%mod;return;}int mid=(l+r)>>1,len=mid-l+1,p=l^(mid+1);solve(mid+1,r);for(int i=0;i<len;i++) {a[i]=(E[i+mid+1]+1)%mod;b[i]=P[i+p];}FWTxor(a,1,len),FWTxor(b,1,len);for(int i=0;i<len;i++) {a[i]=a[i]*b[i]%mod;}FWTxor(a,(mod+1)>>1,len);for(int i=l;i<=mid;i++) {E[i]=(E[i]+a[i-l]*inv(S[i]))%mod;}solve(l,mid); } int main() { #ifndef ONLINE_JUDGE // freopen("data.in.txt","r",stdin); // freopen("data.out.txt","w",stdout); #endif // ios::sync_with_stdio(false);int w;cin>>w;while(w--) {memset(tmp,0,sizeof(tmp));memset(S,0,sizeof(S));memset(E,0,sizeof(E));int sum=0;read(n);for(int i=0;i<n;i++) {read(P[i]);sum+=P[i];}sum=inv(sum);for(int i=0;i<n;i++) {P[i]=P[i]*sum%mod;}for(int i=0;i<n;i++) {for(int j=16;j>=0;j--) {if(i>>j&1) {tmp[j]=(tmp[j]+P[i])%mod;break;}}}for(int i=0;i<n;i++) {for(int j=0;j<=16;j++) {if(!(i>>j&1)) {S[i]=(S[i]+tmp[j])%mod;}}invS[i]=inv(S[i]);}solve(0,n-1);cout<<E[0]<<endl;}return 0; }

總結(jié)

以上是生活随笔為你收集整理的2021牛客多校6 - Gambling Monster(分治FWT优化期望dp)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文字幕第九页 | 日韩免费av一区 | 日本男女网站 | 国产 欧美 日韩 | 午夜视频在线观看一区 | 一区二区三区四区五区六区 | 韩国中文字幕在线观看 | 高清在线一区 | 国产98在线 | 欧美一级黄色片子 | 99只有精品| 老牛影视av老牛影视av | 在线观看亚洲a | 日韩va亚洲va欧美va久久 | 国产妞干网 | 偷偷色噜狠狠狠狠的777米奇 | 欧美bdsm调教视频 | 激情av中文字幕 | 亚洲最新av在线 | 97视频网址 | 日本在线精品 | 男人天堂v | 国产伦精品一区二区三区视频1 | 精品无码一级毛片免费 | 视频在线中文字幕 | 亚洲av无码专区在线播放中文 | 亚洲av无码国产精品久久 | 日韩少妇一区 | 69影院少妇在线观看 | 欧美性受xxxx黑人 | 香蕉在线影院 | 黄色一级片在线免费观看 | 床戏高潮做进去大尺度视频 | 亚洲欧美激情图片 | 丰满岳跪趴高撅肥臀尤物在线观看 | 亚洲黄色网页 | 久久伊人一区 | 99国产精品自拍 | 性囗交免费视频观看 | 亚洲乱强伦| 精品一区二区三区不卡 | 国产偷人视频 | 亚洲性夜| 91大神在线免费观看 | 欧美偷拍少妇精品一区 | 亚洲精品黄| 白又丰满大屁股bbbbb | 亚州色图欧美色图| 欧美性xxxxx极品少妇 | 国产精品成人午夜视频 | 91娇羞白丝网站 | 免费精品视频在线 | 亚洲最新av网站 | 春色网站| 伊人22综合 | 手机在线不卡av | 超碰凹凸 | 91精品国产综合久久久蜜臀 | 美妇湿透娇羞紧窄迎合 | 国产白丝袜美女久久久久 | 一二三四区在线 | 丰满的女人性猛交 | 亚洲国产成人精品久久久 | 中文字幕一区在线观看 | 成人禁污污啪啪入口 | 91亚洲精品国偷拍自产在线观看 | 欧美一级做 | 91蜜桃网站 | 久草影视在线观看 | 国产又大又黄视频 | 亚洲综合成人在线 | 国产精品综合久久久久久 | 超碰视屏 | 在线观看网站污 | 国产一级性生活 | 青青草视频免费观看 | 丁香婷婷激情 | 国产精品区一区二 | 综合色视频 | 色婷婷香蕉在线一区二区 | 狠狠干网址 | 欧美搞逼视频 | 天天看天天色 | 国产av 一区二区三区 | 欧美黑人xxx | 少妇一区二区视频 | 美女国产毛片a区内射 | 五月婷婷综合激情网 | 国产美女自拍 | 亚洲熟妇无码一区二区三区导航 | 中文字幕精品久久久久人妻红杏ⅰ | a网址| 欧美精品极品 | 夜夜激情 | 欧美在线性| 好吊视频在线观看 | 欧美深性狂猛ⅹxxx深喉 | 欧美不卡在线 | 成人亚洲精品久久久久软件 |