1415: [Noi2005]聪聪和可可
2017-09-02 22:00
357 查看
概率dp题,一开始想高斯消元,后来发现无环,但还是只会n^3的DP。
这类题目无环的题,把答案作为dp值记忆化后直接降为n^2+m * n,这是一个实用的技巧,下次遇到这类题目就别想消元了。
这类题目无环的题,把答案作为dp值记忆化后直接降为n^2+m * n,这是一个实用的技巧,下次遇到这类题目就别想消元了。
%:pragma GCC optimize(3) #include<bits/stdc++.h> using namespace std; const int N = 1005; const int M = N * 5; int pos , dis , n , m , to[M] , ne[M] , cnt , fir , du , s , t , x , y , pre ; double dp ; bool vis ; #define Foreachson(i,x) for(int i = fir[x];i;i = ne[i]) void add(int x ,int y) { ne[++ cnt] = fir[x]; fir[x] = cnt; to[cnt] = y; } void link(int x ,int y) { add(x,y); add(y,x); du[x] ++; du[y] ++; } void BFS(int x) { queue<int>q; dis[x][x] = 0; memset(pre,0,sizeof(pre)); Foreachson(i,x) { int V = to[i]; dis[x][V] = 1; pre[V] = V; q.push(V); } while(!q.empty()) { int ind = q.front(); q.pop(); Foreachson(i,ind) { int V = to[i]; if(dis[x][V] > dis[x][ind] + 1) { dis[x][V] = dis[x][ind] + 1; pre[V] = pre[ind]; q.push(V); } else if(dis[x][V] == dis[x][ind] + 1) { if(pre[V] > pre[ind]) { pre[V] = pre[ind]; q.push(V); } } } } for(int i = 1;i <= n;i ++) { pos[x][i] = pre[i]; } pos[x][x] = x; } double dfs(int x ,int y) { if(vis[x][y]) return dp[x][y]; // vis[x][y] = 1; if(x == y) return 0; if(dis[x][y] <= 2) return 1; vis[x][y] = 1; Foreachson(i,y) { int V = to[i]; dp[x][y] = dp[x][y] + (double)1 / (double)(du[y] + 1) * dfs(pos[pos[x][y]][y] , V); } int V = y; dp[x][y] += (double)1 / (double)(du[y] + 1) * (dfs(pos[pos[x][y]][y] , V)); dp[x][y] += 1.0; return dp[x][y]; } int main(){ scanf("%d%d",&n,&m); scanf("%d%d",&s,&t); for(int i = 1;i <= m;i ++) { scanf("%d%d",&x,&y); link(x,y); } memset(dis,127,sizeof(dis)); for(int i = 1;i <= n;i ++) BFS(i); printf("%.3lf",dfs(s,t)); }
相关文章推荐
- bzoj1415 [Noi2005]聪聪和可可 (概率与期望)
- 【BZOJ 1415】 1415: [Noi2005]聪聪和可可 (bfs+记忆化搜索+期望)
- [NOI2005]BZOJ1415 聪聪和可可
- bzoj 1415: [Noi2005]聪聪和可可
- NOI2005 BZOJ 1415聪聪和可可(期望+Floyd)
- 【NOI2005】bzoj1415 聪聪和可可
- [BZOJ 1415][NOI 2005]聪聪和可可(SPFA+概率DP)
- [bzoj1415][Noi2005]聪聪和可可 期望DP+记忆化搜索 & bzoj100题
- bzoj 1415: [Noi2005]聪聪和可可 (概率与期望)
- 【BZOJ1415】【Noi2005】聪聪和可可 概率DP 记忆化搜索
- bzoj1415: [Noi2005]聪聪和可可 记忆化搜索
- bzoj 1415: [Noi2005]聪聪和可可
- BZOJ 1415: [Noi2005]聪聪和可可
- bzoj1415 [Noi2005]聪聪和可可
- BZOJ1415: [Noi2005]聪聪和可可 最短路 期望概率dp
- 【BZOJ】【1415】【NOI2005】聪聪和可可
- 1415: [Noi2005]聪聪和可可
- 1415: [Noi2005]聪聪和可可 概率与期望 记忆化搜索
- BZOJ 1415|NOI 2005|聪聪和可可|概率期望|动态规划
- NOI 2005(BZOJ 1415)聪聪和可可