bzoj1415 [Noi2005]聪聪和可可——概率期望
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1415
看博客:http://www.cnblogs.com/Narh/p/9206642.html
看博客:https://blog.csdn.net/clove_unique/article/details/62237321
代码如下:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
int const maxn=;
int n,m,cc,kk,head[maxn],ct,dis[maxn][maxn],goal[maxn][maxn],inf;
double d[maxn],f[maxn][maxn],ans;
queue<int>q;
struct N{
int to,next;
N(int t=,int n=):to(t),next(n) {}
}edge[maxn<<];
void add(int x,int y){edge[++ct]=N(y,head[x]); head[x]=ct;}
void bfs(int s)
{
while(q.size())q.pop();
dis[s][s]=; q.push(s);
while(q.size())
{
int x=q.front(); q.pop();
for(int i=head[x];i;i=edge[i].next)
{
int u=edge[i].to;
if(dis[s][u]==inf)
{
dis[s][u]=dis[s][x]+;
q.push(u);
}
}
}
}
double dfs(int c,int k)
{
if(f[c][k]>=)return f[c][k];
if(c==k)return f[c][k]=;
if(dis[c][k]<=)return f[c][k]=;
double P=1.0/(d[k]+1.0);
f[c][k]=;//
int to=goal[c][k];
for(int i=head[k];i;i=edge[i].next)
f[c][k]+=P*dfs(to,edge[i].to);
f[c][k]+=P*dfs(to,k);
return f[c][k];
}
int main()
{
scanf("%d%d%d%d",&n,&m,&cc,&kk);
for(int i=,x,y;i<=m;i++)
{
scanf("%d%d",&x,&y);
add(x,y); add(y,x);
d[x]+=1.0; d[y]+=1.0;
}
memset(dis,0x3f,sizeof dis); inf=dis[][];
for(int i=;i<=n;i++)bfs(i);
for(int i=;i<=n;i++)//cc
for(int j=;j<=n;j++)//kk
{
if(dis[i][j]==inf)continue;
if(dis[i][j]<=){goal[i][j]=j; continue;}
int mx=inf,t=inf;
for(int k=head[i];k;k=edge[k].next)
{
int u=edge[k].to;
if(dis[u][j]<mx || (dis[u][j]==mx&&u<t))mx=dis[u][j],t=u;
}
int mx2=inf,t2=inf;
for(int k=head[t];k;k=edge[k].next)
{
int u=edge[k].to;
if(dis[u][j]<mx2 || (dis[u][j]==mx2&&u<t2))mx2=dis[u][j],t2=u;
}
goal[i][j]=t2;
}
memset(f,-,sizeof f);
ans=dfs(cc,kk);
printf("%.3lf",ans);
return ;
}
bzoj1415 [Noi2005]聪聪和可可——概率期望的更多相关文章
- BZOJ1415[Noi2005]聪聪和可可——记忆化搜索+期望dp
题目描述 输入 数据的第1行为两个整数N和E,以空格分隔,分别表示森林中的景点数和连接相邻景点的路的条数. 第2行包含两个整数C和M,以空格分隔,分别表示初始时聪聪和可可所在的景点的编号. 接下来E行 ...
- 【bzoj1415】 Noi2005—聪聪和可可
http://www.lydsy.com/JudgeOnline/problem.php?id=1415 (题目链接) 题意 一张图,聪聪想吃可可.每单位时间聪聪可以先移动两次:可可后移动一次或停在原 ...
- BZOJ_1415_[Noi2005]聪聪和可可_概率DP+bfs
BZOJ_1415_[Noi2005]聪聪和可可_概率DP+bfs Description Input 数据的第1行为两个整数N和E,以空格分隔,分别表示森林中的景点数和连接相邻景点的路的条数. 第2 ...
- [BZOJ1415][NOI2005]聪聪与可可
Description Input 数据的第1行为两个整数N和E,以空格分隔,分别表示森林中的景点数和连接相邻景点的路的条数. 第2行包含两个整数C和M,以空格分隔,分别表示初始时聪聪和可可所在的景点 ...
- cogs 341:[NOI2005] 聪聪与可可
★★ 输入文件:cchkk.in 输出文件:cchkk.out 简单对比 时间限制:1 s 内存限制:256 MB [问题描述] 在一个魔法森林里,住着一只聪明的小猫聪聪和一只可爱的小 ...
- NOI2005 聪聪和可可
Sol 记忆化搜索. \(f[u][v]\) 表示聪聪在 \(u\) ,可可在 \(v\) ,聪聪抓到可可的期望. 预处理出 \(u\) 到 \(v\) 最短路径编号最小的点,记为 \(g[u][v] ...
- bzoj1415 [Noi2005]聪聪和可可【概率dp 数学期望】
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1415 noip2016 D1T3,多么痛的领悟...看来要恶补一下与期望相关的东西了. 这是 ...
- 【BZOJ1415】 [Noi2005]聪聪和可可 概率与期望
其实题不难,不知提交了几次...不能代码MD...注意一些基本问题...SB概率题 #include <iostream> #include <cstdio> #include ...
- 【BZOJ1415】【NOI2005】聪聪和可可(动态规划,数学期望)
[BZOJ1415][NOI2005]聪聪和可可(动态规划,数学期望) 题面 BZOJ 题解 先预处理出当可可在某个点,聪聪在某个点时 聪聪会往哪里走 然后记忆化搜索一下就好了 #include< ...
随机推荐
- 第二次 Ubuntu16.04 vi编辑器的方向键和退格问题
新安装ubuntu后,好多人可能都碰到过这样的问题,vi对文件进行编辑时,上下左右键变成了ABDC,退格键也不管用. 解决办法其实也很简单,首先卸载掉旧的vim-common. apt-get rem ...
- python中基于tcp协议的通信(数据传输)
tcp协议:流式协议(以数据流的形式通信传输).安全协议(收发信息都需收到确认信息才能完成收发,是一种双向通道的通信) tcp协议在OSI七层协议中属于传输层,它上承用户层的数据收发,下启网络层.数据 ...
- 编译时报错,找不到指定路径下的command,而路径是正确的。
使用的Fedora 18 64位的系统kernel,内核为3.6.10.按照要求使用yum install *** 安装各项工具. path路径使用提供的toolchain,各种路径也安装正确,却发现 ...
- 程序包javax.servlet.http不存在
在maven test项目时,出现错误: java:[7,26] 程序包javax.servlet.http不存在 原因:pom.xml中未引入javax.servlert-api相关的包 <d ...
- UvaLive 4917 Abstract Extract (模拟)
题意: 给定一篇文章, 文章中有段落, 段落中有句子. 句子只会以'!' , '.' , '?' 结尾, 求出每段中含有与他下面同样是该段落中相同单词数最多的句子, 注意, 单词忽略大小写, 重复的单 ...
- cadence中元件所在库
DISCRETE(分立元件)中 开关: 其中可供选择的这几个比较好 SW PUSHBUTTON SW PUSHBUTTON-DPST 数码管: LDD(开头) LTD(开头) 版权声明:本文为博主原创 ...
- Spring 事物注解属性
@Transactional属性 . propagation 事物的传播属性 . isolation 事物的隔离属性 . readonly 设置只读属性 . timeout 设置超时属性 . roll ...
- 【转】WEB前端调优
首先从一次完整的的请求说起:(以此为例get,www,baidu.com) 1,webbrower 发出request, 2,然后解析www.baidu.com为ip,找到ip的服务器, 3,服务器处 ...
- java生成6位随机数字
//生成6位随机数字 System.out.println((int)((Math.random()*9+1)*100000)); //生成5位随机数字 System.out.println((int ...
- Centos下安装X Window+GNOME Desktop+FreeNX
FreeNX是近年来继VNC之后新出现的远程控制解决方案,基本原理是将XWindows的信号压缩后传输到远程客户端显示,而VNC是直接截取 屏幕图像处理传输.这样,在同样的传输信道条件下,FreeNX ...