[BZOJ 1415][Noi2005]聪聪和可可:期望
2017-04-20 09:51
281 查看
点击这里查看原题
点数为1000,因此可以使用n^2算法。p[i][j]表示聪聪在i,可可在j,聪聪下一步走的点。先从每个点出发做一次BFS,预处理出p数组。然后记忆化搜索,f[i][j]表示聪聪在i,可可在j,聪聪追上可可的期望步数,于是f[i][j]=sigma{f[i往j走两步到达的点][j或j临近的点]}/(reg[j]+1)+1
点数为1000,因此可以使用n^2算法。p[i][j]表示聪聪在i,可可在j,聪聪下一步走的点。先从每个点出发做一次BFS,预处理出p数组。然后记忆化搜索,f[i][j]表示聪聪在i,可可在j,聪聪追上可可的期望步数,于是f[i][j]=sigma{f[i往j走两步到达的点][j或j临近的点]}/(reg[j]+1)+1
/* User:Small Language:C++ Problem No.:1415 */ #include<bits/stdc++.h> #define ll long long #define inf 999999999 using namespace std; const int M=1e3+5; int n,m,s,t,dis[M][M],reg[M],tot,p[M][M],fir[M]; double f[M][M]; queue<int> q; struct edge{ int v,nex; }e[M<<1]; void add(int u,int v){ e[++tot]=(edge){v,fir[u]}; fir[u]=tot; reg[u]++; } void bfs(int u){ q.push(u); dis[u][u]=0; while(!q.empty()){ int now=q.front(),tmp=p[u][now]; q.pop(); for(int i=fir[now];i;i=e[i].nex){ int nex=e[i].v; if(dis[u][now]+1<dis[u][nex]||(dis[u][now]+1==dis[u][nex]&&tmp<p[u][nex])){ dis[u][nex]=dis[u][now]+1; p[u][nex]=tmp; if(tmp==0) p[u][nex]=nex; q.push(nex); } } } } double dp(int x,int y){ if(f[x][y]) return f[x][y]; if(x==y) return 0; if(p[x][y]==y||p[p[x][y]][y]==y) return f[x][y]=1; double tmp=dp(p[p[x][y]][y],y); for(int i=fir[y];i;i=e[i].nex) tmp+=dp(p[p[x][y]][y],e[i].v); return f[x][y]=tmp/(reg[y]+1)+1; } int main(){ freopen("data.in","r",stdin);// scanf("%d%d%d%d",&n,&m,&s,&t); for(int i=1;i<=m;i++){ int u,v; scanf("%d%d",&u,&v); add(u,v); add(v,u); } memset(dis,127,sizeof(dis)); for(int i=1;i<=n;i++) bfs(i); printf("%.3lf\n",dp(s,t)); return 0; }
相关文章推荐
- bzoj 1415: [Noi2005]聪聪和可可 (概率与期望)
- BZOJ1415 [Noi2005]聪聪和可可 【SPFA + 期望dp记忆化搜索】
- BZOJ 1415: [Noi2005]聪聪和可可 期望dp
- 【BZOJ1415】【NOI2005】聪聪可可(期望dp、记忆化搜索)
- bzoj1415 [Noi2005]聪聪和可可【概率dp 数学期望】
- bzoj1415 [Noi2005]聪聪和可可(期望概率DP+最短路)
- bzoj1415 [Noi2005]聪聪和可可 (概率与期望)
- BZOJ 1415|NOI 2005|聪聪和可可|概率期望|动态规划
- 【BZOJ】1415 [Noi2005]聪聪和可可 期望DP+记忆化搜索
- 【BZOJ1415】【NOI2005】聪聪与可可(期望dp+预处理)
- [BZOJ1415][NOI2005]聪聪和可可-概率与期望
- BZOJ1415: [Noi2005]聪聪和可可 最短路 期望概率dp
- BZOJ 1415: [Noi2005]聪聪和可可( 最短路 + 期望dp )
- [bzoj1415][Noi2005]聪聪和可可 期望DP+记忆化搜索 & bzoj100题
- 【BZOJ1415】[Noi2005]聪聪和可可 概率与期望
- bzoj1415[NOI2005]聪聪和可可-期望的线性性
- [BZOJ]1415 [NOI2005] 聪聪与可可 期望 + 记忆化搜索
- 【BZOJ1415】【NOI2005】聪聪和可可(动态规划,数学期望)
- bzoj 1415: [Noi2005]聪聪和可可【期望dp+bfs】
- 【bzoj1415】[Noi2005]聪聪和可可 期望记忆化搜索