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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

BZOJ.2707.[SDOI2012]走迷宫(期望 Tarjan 高斯消元)

發布時間:2025/3/14 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BZOJ.2707.[SDOI2012]走迷宫(期望 Tarjan 高斯消元) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目鏈接

一個點到達終點的期望步數 \(E_i=\sum_{(i,j)\in G}\frac{E_j+1}{out[i]}\)\(out[i]\)為點\(i\)的出度。
那么對于一個DAG可以直接在反向圖上拓撲+DP求解。
于是對于環內高斯消元,縮點后拓撲+DP。
無解(無限步)的情況: 起點到不了終點;起點能夠走到一個環,且在這個環內無法走到終點(走不出去)。

ps:1.T連出的邊不能計算。
2.期望的計算式有個+1!
3.建反向邊!
4.重邊


注:
如果\(E_i\)表示從起點到點\(i\)的期望步數,那么起點可能多次到達點\(i\)\(E_i\)這個值就。。(可以就直接拿起點做例子?)
如果\(E_i\)表示到達終點的期望步數就沒有這個問題。


//21136kb 5168ms #include <cmath> #include <cstdio> #include <cctype> #include <cstring> #include <algorithm> #define gc() getchar() const int N=1e4+5,M=1e6+5;int n,m,S,T,Enum,H[N],to[M],nxt[M],_H[N],_to[M],_nxt[M],in[N],q[N]; int tot,bel[N],scc[N][103],num[N],sz[N],Index,dfn[N],low[N],sk[N],top; double A[105][105],E[N],out[N]; bool vis[N],vis_s[N],exist[N];inline int read() {int now=0;register char c=gc();for(;!isdigit(c);c=gc());for(;isdigit(c);now=now*10+c-'0',c=gc());return now; } inline void AddEdge(int u,int v){to[++Enum]=v, nxt[Enum]=H[u], H[u]=Enum;_to[Enum]=u, _nxt[Enum]=_H[v], _H[v]=Enum; } void Tarjan(int x) {dfn[x]=low[x]=++Index, sk[++top]=x, exist[x]=1;for(int i=H[x]; i; i=nxt[i])if(!dfn[to[i]]) Tarjan(to[i]),low[x]=std::min(low[x],low[to[i]]);else if(exist[to[i]]) low[x]=std::min(low[x],dfn[to[i]]);if(dfn[x]==low[x]){++tot;do{bel[sk[top]]=tot, num[sk[top]]=sz[tot],scc[tot][sz[tot]++]=sk[top], exist[sk[top--]]=0;}while(sk[top+1]!=x);} } void DFS(int x) {vis[x]=vis_s[bel[x]]=1;if(x==T) return;//有沒有都行 for(int i=H[x]; i; i=nxt[i])if(!vis[to[i]]) /*++in[bel[x]],//Wrong*/DFS(to[i]); } void Gauss(int n) {for(int j=0; j<n; ++j){int mxrow=j;for(int i=j+1; i<n; ++i)if(fabs(A[i][j])>fabs(A[mxrow][j])) mxrow=i;if(mxrow!=j) for(int k=0; k<=n; ++k) std::swap(A[mxrow][k],A[j][k]);for(int i=j+1; i<n; ++i)if(A[i][j]){double t=A[i][j]/A[j][j];for(int k=j; k<=n; ++k)A[i][k]-=A[j][k]*t;}}for(int i=n-1; ~i; --i){for(int j=i+1; j<n; ++j) A[i][n]-=A[i][j]*A[j][n];A[i][n]/=A[i][i];} }int main() {n=read(),m=read(),S=read(),T=read();for(int u,v,i=1; i<=m; ++i) u=read(),v=read(),out[u]+=1.0,AddEdge(u,v);for(int i=1; i<=n; ++i)if(!dfn[i]) Tarjan(i);DFS(S);if(!vis[T]) {puts("INF"); return 0;}for(int x=1; x<=n; ++x)for(int i=H[x]; i; i=nxt[i])if(bel[x]!=bel[to[i]]) ++in[bel[x]];//反向圖上的入度+1。for(int i=1; i<=tot; ++i)if(vis_s[i]&&!in[i]&&bel[T]!=i) {puts("INF"); return 0;}for(int i=1; i<=n; ++i) out[i]=1.0/out[i];int h=0,t=0;q[t++]=bel[T]; // for(int i=1; i<=tot; ++i) // if(!in[i]) q[t++]=i;//in[]=0的只能是bel[T].while(h<t){int now=q[h++];memset(A,0,sizeof A);for(int j=0; j<sz[now]; ++j){int x=scc[now][j];A[j][j]=1.0, A[j][sz[now]]=E[x]/*之前加上的*/;if(x==T) continue;//不計算終點連出的邊!for(int i=H[x]; i; i=nxt[i])if(bel[to[i]]==now){A[j][sz[now]]+=out[x],//步數+1.A[j][num[to[i]]]-=out[x];//是點的出度不是in[]! //-=不能直接賦值=:有重邊!}}Gauss(sz[now]);for(int j=0; j<sz[now]; ++j){int x=scc[now][j];E[x]=A[j][sz[now]];for(int i=_H[x]; i; i=_nxt[i])if(bel[_to[i]]!=now){if(!--in[bel[_to[i]]]) q[t++]=bel[_to[i]];E[_to[i]]+=(E[x]+1)*out[_to[i]];}}}printf("%.3lf",E[S]);return 0; }

轉載于:https://www.cnblogs.com/SovietPower/p/8681877.html

總結

以上是生活随笔為你收集整理的BZOJ.2707.[SDOI2012]走迷宫(期望 Tarjan 高斯消元)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 综合精品久久久 | 国产亚洲一区二区三区不卡 | 日本www| 亚洲av成人精品日韩在线播放 | 久久精品午夜 | 日韩精品久久久久久久的张开腿让 | 狂野少女电影在线观看国语版免费 | 精品一区二区三区中文字幕 | 久久久精品人妻一区二区三区 | 91一区视频 | 性做久久久久久久久久 | 人人插人人澡 | 亚洲激情第一页 | 日韩日韩日韩日韩日韩 | 欧美成人综合网站 | 天天色综 | 欧美大屁股熟妇bbbbbb | 7色av| 亚洲怡春院 | 亚洲天堂中文在线 | 91视频导航| 乳女教师の诱惑julia | 人人爽在线 | 成人动漫亚洲 | 夜色综合| 日韩视频一区二区三区四区 | 波多野吉衣在线视频 | 精品成人无码一区二区三区 | 国产毛片a | 蜜桃精品噜噜噜成人av | 天天爱天天做天天爽 | 秋霞网一区二区 | wwwxxx黄色| 91精品国产综合久久国产大片 | 第一章豪妇荡乳黄淑珍 | 亚州av网 | 樱花影院最新免费观看攻略 | 成人免费毛片果冻 | 香蕉视频网页 | 潮喷失禁大喷水aⅴ无码 | 天天干天天爱天天射 | 男生插女生视频在线观看 | 91在线无精精品一区二区 | 亚洲二区在线观看 | 色综合久久久久无码专区 | 亚洲一区二区三区高清 | 99久久99久久精品国产片 | 中国少妇色 | 在线免费你懂的 | 国产成人精品一区二区三区在线观看 | 中文字幕日韩精品在线观看 | 成人综合在线视频 | 欧美一区二区视频免费观看 | 成人深夜视频 | 国产在线综合视频 | 国产精品999久久久 在线青草 | 黄色成人一级片 | 爱插美女网 | 欧美三级a做爰在线观看 | 麻豆md0077饥渴少妇 | 18视频在线观看男男 | 日韩永久免费视频 | 九色91视频 | 天天摸日日摸 | 日韩一级欧美一级 | 天天狠狠干 | 热逼视频 | 456av| aa亚洲 | 亚洲国产高清在线 | 一本久道久久综合 | 人妻精品久久久久中文字幕 | 亚洲中午字幕 | 韩国成人理伦片免费播放 | 国产妞干网 | 久久少妇av | 欧美大黑b| 亚洲性xxx| 青青草华人在线视频 | 欧美日韩成人免费 | 黄色欧美在线 | 91在线视频| 不卡视频在线播放 | 一二区在线视频 | 特大黑人巨人吊xxxx | 夜夜春很很躁夜夜躁 | 精品国产户外野外 | 免费在线观看高清影视网站 | 亚洲视频一二 | 丁香花电影高清在线阅读免费 | 中文字幕人妻一区 | 国产欧美日韩综合精品一区二区三区 | 欧美另类视频在线观看 | 男人的天堂久久 | 麻豆爱爱 | 国产视频1区2区3区 国产欧美一区二区精品性色99 | 30一40一50女人毛片 | 911福利视频| 99热首页 |