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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

BZOJ1415[Noi2005]聪聪和可可——记忆化搜索+期望dp

發布時間:2025/5/22 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BZOJ1415[Noi2005]聪聪和可可——记忆化搜索+期望dp 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目描述

輸入

數據的第1行為兩個整數N和E,以空格分隔,分別表示森林中的景點數和連接相鄰景點的路的條數。 第2行包含兩個整數C和M,以空格分隔,分別表示初始時聰聰和可可所在的景點的編號。 接下來E行,每行兩個整數,第i+2行的兩個整數Ai和Bi表示景點Ai和景點Bi之間有一條路。 所有的路都是無向的,即:如果能從A走到B,就可以從B走到A。 輸入保證任何兩個景點之間不會有多于一條路直接相連,且聰聰和可可之間必有路直接或間接的相連。

輸出

輸出1個實數,四舍五入保留三位小數,表示平均多少個時間單位后聰聰會把可可吃掉。

樣例輸入

【輸入樣例1】
4 3
1 4
1 2
2 3
3 4
【輸入樣例2】
9 9
9 3
1 2
2 3
3 4
4 5
3 6
4 6
4 7
7 8
8 9

樣例輸出

【輸出樣例1】
1.500
【輸出樣例2】
2.167

提示

【樣例說明1】
開始時,聰聰和可可分別在景點1和景點4。
第一個時刻,聰聰先走,她向更靠近可可(景點4)的景點走動,走到景點2,然后走到景點3;假定忽略走路所花時間。
可可后走,有兩種可能:
第一種是走到景點3,這樣聰聰和可可到達同一個景點,可可被吃掉,步數為1,概率為 。
第二種是停在景點4,不被吃掉。概率為 。
到第二個時刻,聰聰向更靠近可可(景點4)的景點走動,只需要走一步即和可可在同一景點。因此這種情況下聰聰會在兩步吃掉可可。
所以平均的步數是1* +2* =1.5步。


對于所有的數據,1≤N,E≤1000。
對于50%的數據,1≤N≤50。

總體來說不是太難,只要把題里需要的信息都求出來按題目要求做就行。 SPFA求出以每個點為源點的最短路并用一個數組記錄每個點能到達的點有哪些順便維護出每個點的度。 通過前兩個信息就能求出從一個點到另一個點的途中下一步會走向哪個點。 因為最終結束狀態不確定,我們可以記憶化搜索,f[i][j]代表聰聰在i點,可可在j點時聰聰抓到可可的期望時間,按題目要求轉移就行了。 具體實現看代碼吧。 #include<set> #include<map> #include<queue> #include<cmath> #include<stack> #include<cstdio> #include<vector> #include<bitset> #include<cstring> #include<iostream> #include<algorithm> #define ll long long #define ld long double #define pr pair<int,int> using namespace std; int tot; int vis[1010]; int head[1010]; int to[2010]; int next[2010]; double f[1010][1010]; int d[1010][1010]; int n,m; int x,y; int a,b; int g[1010]; int w[1010][1010]; int p[1010][1010]; queue<int>q; void add(int x,int y) {tot++;next[tot]=head[x];head[x]=tot;to[tot]=y; } void SPFA(int S) {memset(d[S],0x3f,sizeof(d[S]));d[S][S]=0;q.push(S);while(!q.empty()){int now=q.front();q.pop();vis[now]=0;for(int i=head[now];i;i=next[i]){if(d[S][to[i]]>d[S][now]+1){d[S][to[i]]=d[S][now]+1;if(!vis[to[i]]){vis[to[i]]=1;q.push(to[i]);}}}} } double dfs(int s,int t) {if(f[s][t]!=0){return f[s][t];}if(s==t){return f[s][t]=(double)0;}if(p[p[s][t]][t]==t){return f[s][t]=(double)1;}if(p[s][t]==t){return f[s][t]=(double)1;}for(int i=1;i<=g[t];i++){f[s][t]+=dfs(p[p[s][t]][t],w[t][i])/(g[t]+1);}f[s][t]+=dfs(p[p[s][t]][t],t)/(g[t]+1);f[s][t]+=1;return f[s][t]; } int main() {scanf("%d%d%d%d",&n,&m,&a,&b);for(int i=1;i<=m;i++){scanf("%d%d",&x,&y);add(x,y);add(y,x);g[x]++;g[y]++;w[x][g[x]]=y;w[y][g[y]]=x;}for(int i=1;i<=n;i++){SPFA(i);}memset(p,0x7f,sizeof(p));for(int i=1;i<=n;i++){for(int j=1;j<=g[i];j++){for(int k=1;k<=n;k++){if(d[i][k]==d[w[i][j]][k]+1&&p[i][k]>w[i][j]){p[i][k]=w[i][j];}}}}printf("%.3f",dfs(a,b)); }

轉載于:https://www.cnblogs.com/Khada-Jhin/p/9948611.html

總結

以上是生活随笔為你收集整理的BZOJ1415[Noi2005]聪聪和可可——记忆化搜索+期望dp的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产福利91 | 精品久久久国产 | 国产人妖一区 | 精品久久久久久久久久久久久久 | 日韩城人视频 | 亚洲天堂中文字幕 | 亚洲精品97久久中文字幕 | 亚洲激情免费视频 | 91片黄在线观看 | 色图综合 | 午夜日韩 | 三上悠亚久久精品 | 美女福利在线 | 免费激情网 | 粉嫩av一区二区夜夜嗨 | 中文无码av一区二区三区 | 色大师在线观看 | 色午夜婷婷 | 女性毛片 | 亚洲熟妇色自偷自拍另类 | 四虎一国产精品一区二区影院 | 91色漫| 热逼视频| 一区二区日韩视频 | 不卡国产在线 | 肉丝美脚视频一区二区 | 欧美一区二区在线观看 | 伊人网视频在线观看 | 欧美性生活一级 | 日韩在线视频在线观看 | 欧美裸体xxxx | 国产精品精品久久久久久 | 高潮毛片无遮挡 | 久久久久久久久久久国产 | 三级av毛片 | 久久久一二三区 | 久久久精品影视 | 日韩在线黄色 | 波多野结衣中文一区 | av导航在线| 免费欧美日韩 | av福利网站 | 久色免费视频 | 国产做a视频 | 一区二区三区黄 | 日韩在线观看视频一区二区三区 | 国产日韩亚洲 | 九九热精品在线 | 欧美xx孕妇 | 国产不卡在线视频 | 丁香色婷婷 | 这里只有精品66 | 美女扒开腿让男人 | 美妇av | 久久机热这里只有精品 | 成人爽a毛片一区二区免费 日本高清免费看 | 久久天堂| www.97超碰| 亚洲在线视频 | 无码精品人妻一区二区三区湄公河 | 亚洲黄色在线观看 | 欧美乱妇狂野欧美视频 | 亚州黄色 | 黄色的一级片 | 成人精品三级 | 男生和女生一起差差差视频 | 毛片手机在线 | 91插插插视频| 久久激情小说 | 精品人成| 男女羞羞动态图 | 超碰95在线 | 一区二区福利 | 亚洲av永久无码精品一区二区国产 | 色黄大色黄女片免费中国 | 日本三级精品 | 日韩av在线观看免费 | 日噜噜夜噜噜 | 欧美亚洲综合网 | 解开人妻的裙子猛烈进入 | 91色视频在线 | 国产欧美日韩一区二区三区 | 国产一区二区在线免费 | 草草福利影院 | 免费a视频| 污免费在线观看 | 黄色网页大全 | 亚洲三级图片 | 在线免费观看黄色小视频 | 亚洲成av人片在线观看无 | 欧美一区三区二区在线观看 | 又黄又色| 亚洲黄色av | 国产免费播放 | 亚洲v欧美v | 中文av资源 | 老司机一区 | 国产av无码专区亚洲精品 | 精国产人伦一区二区三区 |