比较简单的数学期望,先预处理出当聪聪在i,可可在j时聪聪往哪个点走
然后做dp即可,我用了记忆化搜索实现
type node=record
po,next:longint;
end; var d,pos:array[..,..] of longint;
f:array[..,..] of double;
v:array[..] of boolean;
e:array[..] of node;
c,p,q:array[..] of longint;
len,s,t,i,j,n,m,x,y:longint; procedure add(x,y:longint);
begin
inc(len);
e[len].po:=y;
e[len].next:=p[x];
p[x]:=len;
end; procedure bfs(s:longint);
var f,r,i,x,y:longint;
begin
d[s,s]:=;
fillchar(v,sizeof(v),false);
v[s]:=true;
f:=;
r:=;
i:=p[s];
while i<> do
begin
y:=e[i].po;
v[y]:=true;
inc(r);
q[r]:=y;
d[s,y]:=;
pos[s,y]:=y;
i:=e[i].next;
end;
while f<=r do
begin
x:=q[f];
i:=p[x];
while i<> do
begin
y:=e[i].po;
if not v[y] then
begin
d[s,y]:=d[s,x]+;
pos[s,y]:=pos[s,x];
v[y]:=true;
inc(r);
q[r]:=y;
end
else if (d[s,y]=d[s,x]+) and (pos[s,x]<pos[s,y]) then
pos[s,y]:=pos[s,x]; i:=e[i].next;
end;
inc(f);
end;
end; function dfs(x,y:longint):double;
var i,w:longint;
begin
if x=y then exit();
if (pos[x,y]=y) or (pos[pos[x,y],y]=y) then exit();
if f[x,y]<>- then exit(f[x,y]);
i:=p[y];
f[x,y]:=dfs(pos[pos[x,y],y],y);
while i<> do
begin
w:=e[i].po;
f[x,y]:=f[x,y]+dfs(pos[pos[x,y],y],w);
i:=e[i].next;
end;
f[x,y]:=f[x,y]/(c[y]+)+;
exit(f[x,y]);
end; begin
readln(n,m);
readln(s,t);
for i:= to m do
begin
readln(x,y);
add(x,y);
add(y,x);
inc(c[x]);
inc(c[y]);
end;
for i:= to n do
begin
for j:= to n do
f[i,j]:=-;
pos[i,i]:=i;
f[i,i]:=;
bfs(i);
end;
writeln(dfs(s,t)::);
end.
bzoj1415的更多相关文章
-
【bzoj1415】 Noi2005—聪聪和可可
http://www.lydsy.com/JudgeOnline/problem.php?id=1415 (题目链接) 题意 一张图,聪聪想吃可可.每单位时间聪聪可以先移动两次:可可后移动一次或停在原 ...
-
【BZOJ1415】【NOI2005】聪聪和可可(动态规划,数学期望)
[BZOJ1415][NOI2005]聪聪和可可(动态规划,数学期望) 题面 BZOJ 题解 先预处理出当可可在某个点,聪聪在某个点时 聪聪会往哪里走 然后记忆化搜索一下就好了 #include< ...
-
bzoj1415[NOI2005]聪聪和可可-期望的线性性
这道题之前我写过一个巨逗比的写法(传送门:http://www.cnblogs.com/liu-runda/p/6220381.html) 当时的原因是这道题可以抽象出和"绿豆蛙的归宿&qu ...
-
bzoj1415[NOI2005]聪聪和可可
之前做的一些图上的期望步数的题大多用到高斯消元来求解(HNOI游走,SDOI走迷宫,etc),因此我一开始做这道题的时候想偏了- 这道题的性质:聪聪和可可之间的最短路长度严格递减.因为聪聪总可以多走一 ...
-
【BZOJ1415】 [Noi2005]聪聪和可可 概率与期望
其实题不难,不知提交了几次...不能代码MD...注意一些基本问题...SB概率题 #include <iostream> #include <cstdio> #include ...
-
[BZOJ1415]聪聪和可可
Input 数据的第1行为两个整数N和E,以空格分隔,分别表示森林中的景点数和连接相邻景点的路的条数. 第2行包含两个整数C和M,以空格分隔,分别表示初始时聪聪和可可所在的景点的编号. 接下来E行,每 ...
-
BZOJ1415[Noi2005]聪聪和可可——记忆化搜索+期望dp
题目描述 输入 数据的第1行为两个整数N和E,以空格分隔,分别表示森林中的景点数和连接相邻景点的路的条数. 第2行包含两个整数C和M,以空格分隔,分别表示初始时聪聪和可可所在的景点的编号. 接下来E行 ...
-
BZOJ1415: [Noi2005]聪聪和可可 最短路 期望概率dp
首先这道题让我回忆了一下最短路算法,所以我在此做一个总结: 带权: Floyed:O(n3) SPFA:O(n+m),这是平均复杂度实际上为O(玄学) Dijkstra:O(n+2m),堆优化以后 因 ...
-
【bzoj1415】【聪聪和可可】期望dp(记忆化搜索)+最短路
[pixiv] https://www.pixiv.net/member_illust.php?mode=medium&illust_id=57148470 Descrition 首先很明显是 ...
随机推荐
-
【开源毕设】一款精美的家校互动APP分享——爱吖校推 [你关注的,我们才推](持续开源更新3)附高效动态压缩Bitmap
一.写在前面 爱吖校推如同它的名字一样,是一款校园类信息推送交流平台,这么多的家校互动类软件,你选择了我,这是我的幸运.从第一次在博客园上写博客到现在,我一次一次地提高博文的质量和代码的可读性,都是为 ...
-
[python]数据整理,将取得的众多的沪深龙虎榜数据整一整
将昨日取得的众多的沪深龙虎榜数据整一整 提取文件夹内所有抓取下来的沪深龙虎榜数据,整理出沪深两市(含中小创)涨幅榜股票及前5大买入卖出资金净值,保存到csv文件 再手动使用数据透视表进行统计 原始数据 ...
-
Linux下监控服务器状态命令——top
----------------------------------工作中常用的命令,来判断服务器状态是否正常------------------------------------- top命令作用 ...
-
javascript学习—理解addLoadEvent函数
onload事件是HTML DOM Event 对象的一个属性,又叫事件句柄(Event Handlers),它会在页面或图像加载完成后(注意是加载完成后)立即发生. window.onload = ...
-
C#通用类型转换 Convert.ChangeType
]; object innerValue = ChangeType(value, innerType); return Activator.CreateInstance ...
-
怎么在ZBrush中通过遮罩得到子物体
ZBrush® 中通过遮罩为模型添加子物体的方法简单且方便,我们可以通过按住Ctrl键绘制遮罩结合相关命令创建具有抽出厚度的模型提取出作为子物体附在模型表面.本文将详细介绍在Zbrush中如何通过遮罩 ...
-
ASP.NET MVC之文件上传【二】
前言 上一节我们讲了简单的上传以及需要注意的地方,查相关资料时,感觉上传里面涉及到的内容还是比较多,于是就将上传这一块分为几节来处理,同时后续也会讲到关于做上传时遗漏的C#应该注意的地方,及时进行查漏 ...
-
python获取每颗cpu使用率
以下是关于python来获取服务器每颗CPU使用率的使用脚本. #!/usr/bin/env python # -*- coding: utf-8 -*- import re,time def _re ...
-
Diet
Dialogue 1 Healthy diet 关于健康饮食 F:Bob, look at this sentence. 'Healthy eating is not about strict n ...
-
瑞游天翼客户端win7,win8,win10
以管理员身份运行即可, 链接: http://pan.baidu.com/s/1kTw7VH9 密码: vttq