bzoj 1415 [Noi2005]聪聪和可可 概率dp
来源:互联网 发布:如何做好一个淘宝运营 编辑:程序博客网 时间:2024/05/16 15:53
先dijkstra跑出两点间最短路。
#include <bits/stdc++.h>using namespace std;#define N 1100int n,m,S,T,tot,cnt;int head[N],nex[N<<1],to[N<<1];priority_queue<pair<int,int> >q;int mp[N][N],vis[N],g[N][N],du[N];double f[N][N];struct node{ int x,y,v; node(){} node(int x,int y):x(x),y(y){v=mp[x][y];} friend bool operator < (const node &r1,const node &r2) {return r1.v<r2.v;}}a[N*N];void add(int x,int y){ tot++; nex[tot]=head[x];head[x]=tot; to[tot]=y;}void dijkstra(int x){ memset(vis,0,sizeof(vis)); memset(mp[x],0x3f,sizeof(mp[x])); mp[x][x]=0;q.push(make_pair(0,x)); while(!q.empty()) { int t=q.top().second;q.pop(); if(vis[t])continue; vis[t]=1; for(int i=head[t];i;i=nex[i]) if(mp[x][to[i]]>mp[x][t]+1) { mp[x][to[i]]=mp[x][t]+1; q.push(make_pair(-mp[x][to[i]],to[i])); } }}int main(){ //freopen("tt.in","r",stdin); scanf("%d%d%d%d",&n,&m,&S,&T); for(int i=1,x,y;i<=m;i++) { scanf("%d%d",&x,&y); add(x,y);add(y,x); du[x]++;du[y]++; } for(int i=1;i<=n;i++) dijkstra(i); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) for(int k=head[i];k;k=nex[k]) if(!g[i][j]||mp[g[i][j]][j]>mp[to[k]][j]|| (mp[g[i][j]][j]==mp[to[k]][j]&&g[i][j]>to[k])) g[i][j]=to[k]; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(i!=j)a[++cnt]=node(i,j); sort(a+1,a+1+cnt); for(int i=1;i<=cnt;i++) { int t1=g[a[i].x][a[i].y],t2=g[t1][a[i].y]; if(t1==a[i].y||t2==a[i].y) {f[a[i].x][a[i].y]=1;continue;} f[a[i].x][a[i].y]=f[t2][a[i].y]+1; for(int j=head[a[i].y];j;j=nex[j]) f[a[i].x][a[i].y]+=f[t2][to[j]]+1; f[a[i].x][a[i].y]/=(du[a[i].y]+1); } printf("%.3lf\n",f[S][T]); return 0;}
0 0
- BZOJ 1415: [Noi2005]聪聪和可可|概率dp
- BZOJ 1415 [Noi2005]聪聪和可可【概率dp】
- bzoj 1415 [Noi2005]聪聪和可可 概率dp
- BZOJ 1415: [Noi2005]聪聪和可可 概率DP,记忆化搜索,BFS
- BZOJ 1415: [Noi2005]聪聪和可可 期望dp
- 【BZOJ 1415】 [Noi2005]聪聪和可可
- BZOJ 1415: [Noi2005]聪聪和可可
- 【BZOJ】【P1415】【Noi2005】【聪聪和可可】【题解】【期望DP】
- bzoj 1415: [Noi2005]聪聪和可可 (概率与期望)
- 1415: [Noi2005]聪聪和可可(BFS+SPFA+概率DP)
- bzoj 1415 聪聪和可可(概率DP)
- BZOJ 1415 NOI2005 聪聪和可可 期望DP+记忆化搜索 BZOJ200题达成&&NOI2005全AC达成
- NOI2005 BZOJ 1415聪聪和可可(期望+Floyd)
- [BZOJ 1415][Noi2005]聪聪和可可:期望
- 【BZOJ1415】【Noi2005】聪聪和可可 概率DP 记忆化搜索
- bzoj1415 [Noi2005]聪聪和可可(期望概率DP+最短路)
- 【概率动态规划】【NOI2005】聪聪和可可
- 【NOI2005】【概率动态规划】聪聪和可可
- 快学Scala学习笔记及习题解答(10-11特质与操作符)
- 正则表达式实例
- 工作空闲时整理的一些笔记
- [编程题] 优雅的点--网易
- MongoDB安装教程
- bzoj 1415 [Noi2005]聪聪和可可 概率dp
- LeetCode 85 (Maximal-Rectangle)java
- linux系统svn服务器搭建
- Eclipse project 重命名问题(如何彻底修改工程名)
- iOS9适配 之 关于info.plist 第三方登录 添加URL Schemes白名单
- simulink(转载)
- iOS中cell自适应文本Label高度篇
- Bootstrap3 表格-状态类
- Ubuntu下ssh远程链接传输