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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

HDU4035 Maze(树上期望)

發布時間:2023/12/3 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HDU4035 Maze(树上期望) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Maze

狀態表示:fuf_ufu?表示在uuu節點走出迷宮期望次數,dud_udu?表示度數
首先很容易想到下面式子fu=ku×f1+(1?ku?eu)×∑u→vfv+1duf_u=k_u×f_1+(1-k_u-e_u)×\frac{\sum _{u\to v}f_v+1}{d_u}fu?=ku?×f1?+(1?ku??eu?)×du?uv?fv?+1?
每個節點有一個類似的式子,也就是nnn個式子,nnn個未知量我們需要求出f1f_1f1?顯然可以高斯消元O(n3)O(n^3)O(n3)但是看了1≤n≤1041\leq n\leq 10^41n104留下了可惜的淚水~~

之前也做過返回起點的題目,只需要在dp時候多記錄一維信息于是向初中解方程那樣求解即可這樣時間復雜度就能優化到O(n)O(n)O(n),不過本題在樹上,好像也不可行其實可以


對于“返回”在樹上是如何體現的?

不難想到返回祖先,而此題中就是返回父親以及返回根節點111,于是效仿返回題目的做法,列出下面方程
fu=ku×f1+1?ku?eudu×(ffa+1)+1?ku?eudu×∑v∈sonu(fv+1)f_u=k_u×f_1+\frac{1-k_u-e_u}{d_u}×(f_{fa}+1)+\frac{1-k_u-e_u}{d_u}×\sum_{v\in son_u}{(f_v+1)}fu?=ku?×f1?+du?1?ku??eu??×(ffa?+1)+du?1?ku??eu??×vsonu??(fv?+1)
稍微化簡一下
fu=ku×f1+1?ku?eudu×ffa+1?ku?eudu×∑v∈sonufv+(1?ku?eu)f_u=k_u×f_1+\frac{1-k_u-e_u}{d_u}×f_{fa}+\frac{1-k_u-e_u}{d_u}×\sum_{v\in son_u}{f_v}+(1-k_u-e_u)fu?=ku?×f1?+du?1?ku??eu??×ffa?+du?1?ku??eu??×vsonu??fv?+(1?ku??eu?)

我們發現所有dp式子都可以寫成
fu=au×f1+bu×ffa+cuf_u=a_u×f_1+b_u×f_{fa}+c_ufu?=au?×f1?+bu?×ffa?+cu?

由于fav=ufa_v=ufav?=u上述式子還能化簡得fv=av×f1+bv×fu+cvf_v=a_v×f_1+b_v×f_u+c_vfv?=av?×f1?+bv?×fu?+cv?
fu=ku×f1+1?ku?eudu×ffa+1?ku?eudu×∑v∈sonu(av×f1+bv×fu+cv)+(1?ku?eu)f_u=k_u×f_1+\frac{1-k_u-e_u}{d_u}×f_{fa}+\frac{1-k_u-e_u}{d_u}×\sum_{v\in son_u}{(a_v×f_1+b_v×f_u+c_v)}+(1-k_u-e_u)fu?=ku?×f1?+du?1?ku??eu??×ffa?+du?1?ku??eu??×vsonu??(av?×f1?+bv?×fu?+cv?)+(1?ku??eu?)
于是有更平凡的式子
(1?1?ku?eudu∑v∈sonubv)×fu=(ku+1?ku?eudu∑v∈sonuav)×f1+1?ku?eudu×ffa+1?ku?eudu∑v∈sonucv+(1?ku?eu)(1-\frac{1-k_u-e_u}{d_u}\sum_{v\in son_u}{b_v})×f_u=(k_u+\frac{1-k_u-e_u}{d_u}\sum_{v\in son_u}{a_v})×f_1+\frac{1-k_u-e_u}{d_u}×f_{fa}+\frac{1-k_u-e_u}{d_u}\sum_{v\in son_u}{c_v}+(1-k_u-e_u)(1?du?1?ku??eu??vsonu??bv?)×fu?=(ku?+du?1?ku??eu??vsonu??av?)×f1?+du?1?ku??eu??×ffa?+du?1?ku??eu??vsonu??cv?+(1?ku??eu?)
于是有au=ku+1?ku?eudu∑v∈sonuav1?1?ku?eudu∑v∈sonubva_u=\frac{k_u+\frac{1-k_u-e_u}{d_u}\sum_{v\in son_u}{a_v}}{1-\frac{1-k_u-e_u}{d_u}\sum_{v\in son_u}{b_v}}au?=1?du?1?ku??eu??vsonu??bv?ku?+du?1?ku??eu??vsonu??av??
bu=1?ku?eudu1?1?ku?eudu∑v∈sonubvb_u=\frac{\frac{1-k_u-e_u}{d_u}}{1-\frac{1-k_u-e_u}{d_u}\sum_{v\in son_u}{b_v}}bu?=1?du?1?ku??eu??vsonu??bv?du?1?ku??eu???
cu=1?ku?eudu∑v∈sonucv+(1?ku?eu)1?1?ku?eudu∑v∈sonubvc_u=\frac{\frac{1-k_u-e_u}{d_u}\sum_{v\in son_u}{c_v}+(1-k_u-e_u)}{1-\frac{1-k_u-e_u}{d_u}\sum_{v\in son_u}{b_v}}cu?=1?du?1?ku??eu??vsonu??bv?du?1?ku??eu??vsonu??cv?+(1?ku??eu?)?

然后樹形dpO(n)O(n)O(n)遞推即可

#include<cstdio> #include<cstring> using namespace std; constexpr int N=10010; constexpr double eps=1e-10; int h[N],e[2*N],ne[2*N],idx; void add(int a,int b){e[idx]=b,ne[idx]=h[a],h[a]=idx++;} int d[N],n; double K[N],E[N],T[N],A[N],B[N],C[N]; int sgn(double x) {if(fabs(x)<eps) return 0;if(x<0) return -1;return 1; } bool dfs(int u,int fa) {int m=d[u];A[u]=K[u];B[u]=T[u]/m;C[u]=T[u];double temp=0;for(int i=h[u];i!=-1;i=ne[i]){int v=e[i];if(v==fa) continue;if(!dfs(v,u)) return 0;A[u]+=T[u]/m*A[v];temp+=T[u]/m*B[v];C[u]+=T[u]/m*C[v];}if(!sgn(1.0-temp)) return 0;A[u]/=(1-temp);B[u]/=(1-temp);C[u]/=(1-temp);return 1; } int main() {int TT;scanf("%d",&TT);for(int ca=1;ca<=TT;ca++){scanf("%d",&n);memset(h,-1,sizeof(int)*(n+1));idx=0;memset(d,0,sizeof(int)*(n+1));for(int i=1;i<n;i++){int u,v;scanf("%d%d",&u,&v);add(u,v),add(v,u);d[u]++,d[v]++;}for(int i=1;i<=n;i++){scanf("%lf%lf",&K[i],&E[i]);K[i]/=100;E[i]/=100;T[i]=1-K[i]-E[i];}if(dfs(1,0)&&sgn(1.0-A[1]))printf("Case %d: %.10f\n",ca,C[1]/(1-A[1]));else printf("Case %d: impossible\n",ca);}return 0; }

太秒了吧!!!

總結

以上是生活随笔為你收集整理的HDU4035 Maze(树上期望)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产99在线 | 亚洲 | 亚洲精品在线播放视频 | 永久免费看片 | 欧洲黄色片 | 中文字幕视频免费观看 | 亚洲精品日韩精品 | 欧美精品日韩 | 中文字幕无码日韩专区免费 | 91综合精品| 欧美一级激情 | 中文字幕xxx| 999av视频| av免费在线不卡 | 国产激情四射 | 国产丰满果冻videossex | 日韩成人在线一区 | 三级在线免费 | 啪免费视频 | 简单av在线| 波多野结衣一区二区在线 | 成人性生活免费看 | 粗大黑人巨茎大战欧美成人 | 国产精品乱码久久久久久久久 | 亚洲av无码一区二区三区在线播放 | 97自拍偷拍视频 | 亚洲综合久久久 | 国产精品成人在线 | 日韩一区二区三区精品 | 人人澡超碰碰97碰碰碰 | 瑟瑟综合| 无码人妻一区二区三区在线 | 人人艹在线 | 亚洲欧美日韩一区二区三区在线观看 | 人人射av | 白嫩日本少妇做爰 | 免费观看久久 | 男人的天堂久久久 | 福利视频一区二区 | 国产青青在线 | 91麻豆精品国产理伦片在线观看 | 高清不卡一区二区三区 | 免费看黄色网 | 潘金莲激情呻吟欲求不满视频 | 天天天干干干 | 另类综合在线 | 精品中文字幕一区二区三区 | 久久久久久久久久久久国产精品 | 免费的黄色小视频 | 一区二区三区视频免费观看 | 国产日韩久久 | 久久午夜夜伦鲁鲁一区二区 | 午夜动态图 | 日本高清一区二区视频 | 日本久操视频 | 麻豆网站在线观看 | 亚洲美女自拍偷拍 | 国产乱子伦农村叉叉叉 | 99久久久国产精品无码免费 | 精品国产美女 | 99热视| 性高潮网站| 色综合免费 | 亚洲第一在线 | 国产精品一区二三区 | 国产成人亚洲精品无码h在线 | aaaa黄色| 久久精品国产亚洲7777 | 国产精品99久久久精品无码 | 精品一二三 | 亚洲经典一区二区三区 | 97热久久| 丰满岳妇乱一区二区三区 | 亚洲爱爱视频 | 爽爽视频在线观看 | www99热 | 欧美成人一区二区三区四区 | 91精品国产色综合久久不卡98口 | 18禁网站免费无遮挡无码中文 | 欧美国产一级片 | 一本高清dvd在线播放 | 麻豆疯狂做受xxxx高潮视频 | 狠狠久久久 | 免费看污的网站 | 中文字幕精品三区 | 欧美一区二不卡视频 | 黄瓜视频污在线观看 | 亚洲欧美高清视频 | 久久久老熟女一区二区三区91 | 水蜜桃亚洲精品 | 男生舔女生的屁股 | 一本久道久久综合无码中文 | 女人叉开腿让男人桶 | 中文字幕影院 | 亚洲图片欧美日韩 | 精品黄色在线观看 | 久久久国产片 | 日韩av导航| 精品久久久久久亚洲综合网站 | 日韩一级完整毛片 |