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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

loj 2542 随机游走 —— 最值反演+树上期望DP+fmt

發布時間:2024/10/12 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 loj 2542 随机游走 —— 最值反演+树上期望DP+fmt 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目:https://loj.ac/problem/2542

因為走到所有點的期望就是所有點期望的最大值,所以先最值反演一下,問題變成從根走到一個點集任意一點就停止的期望值;

設 \( f[x] \),則 \( f[x] = \frac{f[fa]+1+\sum\limits_{v \in son} (f[v]+1)}{d[x]} \),其中 \( d[x] \) 是 \( x \) 的度數;

因為其實只和 \( fa \) 有關,所以套路是設 \( f[x] = K[x] * f[fa] + B[x] \),推一推就可以樹形DP求 \( K[x] , B[x] \),這好像叫“樹上高斯消元”?!

因為走到集合內任意一個點就停止,所以 \( K[x] = B[x] = 0 ( x \in S ) \),\( f[rt] \) 即 \( B[rt] \) 就是答案;

然后高維前綴和求子集的 \( f \) 和,注意最值反演的符號要一開始就帶上。

代碼如下:

#include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; int rd() {int ret=0,f=1; char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=0; ch=getchar();}while(ch>='0'&&ch<='9')ret=ret*10+ch-'0',ch=getchar();return f?ret:-ret; } int const xn=20,xm=(1<<18)+5,mod=998244353; int n,rt,sid[xn][xn],bin[xn],cnt[xm],K[xn],B[xn],d[xn],f[xm]; ll pw(ll a,int b){a%=mod; ll ret=1; for(;b;b>>=1,a=a*a%mod)if(b&1)ret=ret*a%mod; return ret;} int upt(int x){while(x>=mod)x-=mod; while(x<0)x+=mod; return x;} void dfs(int x,int fa,int s) {if(s&bin[x-1]){K[x]=B[x]=0; return;}int ks=0,bs=0;for(int u=1;u<=n;u++)if(sid[x][u]&&u!=fa)dfs(u,x,s),ks=upt(ks+K[u]),bs=upt(bs+B[u]);K[x]=pw(d[x]-ks,mod-2); B[x]=(ll)(bs+d[x])*pw(d[x]-ks,mod-2)%mod; } int main() {n=rd(); int Q=rd(); rt=rd();for(int i=1,x,y;i<n;i++)x=rd(),y=rd(),sid[x][y]=sid[y][x]=1,d[x]++,d[y]++;bin[0]=1; for(int i=1;i<=n;i++)bin[i]=(bin[i-1]<<1);for(int s=1;s<bin[n];s++)cnt[s]=cnt[s>>1]+(s&1);for(int s=1;s<bin[n];s++){memset(K,0,sizeof K); memset(B,0,sizeof B);dfs(rt,0,s); f[s]=upt(((cnt[s]&1)?1:-1)*B[rt]);// }for(int i=1;i<=n;i++)for(int s=0;s<bin[n];s++)if(s&bin[i-1])f[s]=upt(f[s]+f[s^bin[i-1]]);for(int i=1,k,s;i<=Q;i++){k=rd(); s=0;for(int j=1,x;j<=k;j++)x=rd(),s|=bin[x-1];printf("%d\n",f[s]);}return 0; }

?

轉載于:https://www.cnblogs.com/Zinn/p/10279681.html

總結

以上是生活随笔為你收集整理的loj 2542 随机游走 —— 最值反演+树上期望DP+fmt的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 成人国产精品久久 | 日本午夜小视频 | 激情小说亚洲色图 | 超碰自拍 | 波多野结衣免费在线视频 | 日韩不卡视频在线观看 | 少妇无内裤下蹲露大唇视频 | 日本成人激情 | 制服丝袜一区二区三区 | 在线视频二区 | 日本精品在线观看 | av中文字 | 精品欧美久久 | 好吊色欧美一区二区三区视频 | 午夜精品福利影院 | 国产欧美日韩视频 | 国产女主播一区二区三区 | 国产成人免费观看 | www免费视频 | 激情小视频 | 污色视频 | 久操色| 老牛av一区二区 | 欧美视频一区在线 | 久热这里只有精品在线 | 激情午夜天 | 嫩草懂你| 免费污片在线观看 | 国产免费看黄 | 久久久国产精品免费 | 播放黄色一级片 | 台湾极品xxx少妇 | 国产三级在线观看完整版 | 三级全黄视频 | 婷婷丁香激情 | 午夜影院 | 亚州三级| 久久大| 777欧美| 美女视频久久久 | 亚洲一区二区三区四 | 天堂视频在线免费观看 | 日韩aaaaaa | 精品五月天 | 亚洲天堂高清 | 天天躁日日躁狠狠躁av麻豆男男 | 操操操网| 成人激情社区 | 久久综合精品国产二区无码不卡 | 人人爽人人干 | 91国自产精品中文字幕亚洲 | 黄色一级免费网站 | 蜜臀久久99精品久久久久宅男 | 六月天综合网 | 国产精品午夜久久 | 一区二区三区四区在线观看视频 | 精品电影在线观看 | 午夜精品久久久久久久久久 | 亚洲av毛片基地 | a视频在线看 | 91视频88av| 天天操天天操 | 美女扒开尿口来摸 | 青青视频在线播放 | 欧美日韩中字 | 综合五月婷婷 | 日本在线免费观看视频 | 99产精品成人啪免费网站 | 东方av在线免费观看 | 男男h黄动漫啪啪无遮挡软件 | 久久天天躁狠狠躁夜夜av | 综合婷婷久久 | 欧美成网站 | 精品视频在线免费 | 九九国产精品视频 | 欧美午夜小视频 | 国产又粗又猛又爽又黄的视频小说 | 亚洲av久久久噜噜噜熟女软件 | 中文字幕25页 | 在线观看免费av网址 | 99er精品视频| 肉丝美足丝袜一区二区三区四 | 亚洲精品v| 97超碰国产精品无码蜜芽 | 天天操夜夜操 | 青青久在线 | 91精品一区二区 | 日本欧美三级 | 国产suv精品一区二区6 | 国产视频一区在线观看 | av少妇在线| av片观看| 韩国三级中文字幕hd浴缸戏 | 欧美乱淫 | wwwa级片| 香蕉视频免费网站 | 91蜜桃网站 | 91大神在线观看视频 | 999久久久免费精品国产 |