NKOJ 3893 聪聪和可可(数学期望+递推+最短路)
来源:互联网 发布:达芬奇 去闪烁 mac 编辑:程序博客网 时间:2024/05/21 09:00
P3893【概率】聪聪和可可
问题描述
输入格式
数据的第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
样例输出 1
1.500
样例输入 2
9 9
9 3
1 2
2 3
3 4
4 5
3 6
4 6
4 7
7 8
8 9
样例输出 2
2.167
令
那么令
那么如果
如果
否则,令
有
然后用最短路算法或者BFS预处理出
代码:
#include<stdio.h>#include<iostream>#include<algorithm>#include<queue>#include<cstring>#define N 1005#define MM 2005using namespace std;int n,m,C,M,D[N],P[N][N];int TOT,LA[N],NE[MM],EN[MM];double F[N][N];queue<int>Q;int dis[N];bool mark[N];void ADD(int x,int y){ TOT++; EN[TOT]=y; NE[TOT]=LA[x]; LA[x]=TOT;}void SPFA(int s){ int i,x,y; memset(dis,60,sizeof(dis)); Q.push(s);mark[s]=1;dis[s]=0; while(Q.size()) { x=Q.front(); Q.pop(); mark[x]=0; for(i=LA[x];i;i=NE[i]) { y=EN[i]; if(dis[y]>dis[x]+1||(dis[y]==dis[x]+1&&P[s][y]>P[s][x])) { dis[y]=dis[x]+1; if(P[s][x])P[s][y]=P[s][x]; else P[s][y]=y; if(!mark[y])mark[y]=1,Q.push(y); } } }}double DFS(int x,int y){ if(F[x][y])return F[x][y]; if(x==y)return F[x][y]=0; int tx=x,ty=y; tx=P[tx][ty]; if(tx==ty)return F[x][y]=1.0; tx=P[tx][ty]; if(tx==ty)return F[x][y]=1.0; double sum=0; for(int i=LA[y];i;i=NE[i]) { ty=EN[i]; sum+=DFS(tx,ty); } sum+=DFS(tx,y); return F[x][y]=sum/(D[y]+1)+1;}int main(){ int i,x,y; scanf("%d%d%d%d",&n,&m,&C,&M); for(i=1;i<=m;i++) { scanf("%d%d",&x,&y); ADD(x,y);ADD(y,x); D[x]++;D[y]++; } for(i=1;i<=n;i++)SPFA(i); printf("%.3lf",DFS(C,M));}
阅读全文
0 0
- NKOJ 3893 聪聪和可可(数学期望+递推+最短路)
- 【bzoj1415】【聪聪和可可】期望dp(记忆化搜索)+最短路
- bzoj1415 [Noi2005]聪聪和可可(期望概率DP+最短路)
- 聪聪和可可(记忆化dp+数学期望)
- NKOJ 2127 搜集卡片 (数学期望+状态压缩+递推)
- NOI2005 BZOJ 1415聪聪和可可(期望+Floyd)
- bzoj 1415 聪聪和可可 (期望dp)
- bzoj1415 [Noi2005]聪聪和可可 (概率与期望)
- bzoj 1415 聪聪和可可 【期望】
- 【BZOJ】【P1415】【Noi2005】【聪聪和可可】【题解】【期望DP】
- 【NOI2005T4】聪聪和可可-期望DP+记忆化搜索
- [BZOJ 1415][Noi2005]聪聪和可可:期望
- BZOJ 1415: [Noi2005]聪聪和可可 期望dp
- BZOJ 1415聪聪和可可 期望dp
- [BZOJ1415][NOI2005]聪聪和可可-概率与期望
- bzoj 1415: [Noi2005]聪聪和可可 (概率与期望)
- [BZOJ1415][Noi2005]聪聪和可可(bfs+概率期望+记搜)
- NKOJ训练赛 过路费(最短路)
- 驱动开发入门
- 解码过程
- 完全背包
- 第六章、ReactNative预加载解决方案
- 历史文化名城
- NKOJ 3893 聪聪和可可(数学期望+递推+最短路)
- 在另一个进程中注入代码的方式20171013
- DFS:690. Employee Importance
- Java/Web调用Hadoop进行MapReduce
- 异或运算例题
- 剑指offer之二十一---复杂链表的复制
- [MIPS汇编语言]对于数的输入和输出
- redis追加持久化-aof(append only file)
- 设计模式 C++版:第二十三式 模板方法