bzoj1415
比较简单的数学期望,先预处理出当聪聪在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 首先很明显是 ...
随机推荐
- python tornado+mongodb的使用
tornado tar xvzf tornado-1.2.1.tar.gz cd tornado-1.2.1 python setup.py build sudo python setup.py in ...
- 向SQL2008R2导入Acess、excel数据
一:导入Access数据 1.在sql2008查询分析 器中输入如下查询语句能查出access中的数据 SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLE ...
- UIView的常见属性
UIView的常见属性: @interface UIView : UIResponder<NSCoding, UIAppearance, UIAppearanceContainer, UIDyn ...
- c语言中数组相关问题
c语言中数组相关问题: 1.数组基本定义: 相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标.组成数组 ...
- c语言中结构体的定义、初始化及内存分配
#include <stdio.h> struct person { char *name; int age; }; int main() { //结构体可以定义在函数内,也可以定义到函数 ...
- JDBC实现往MySQL插入百万级数据
想往某个表中插入几百万条数据做下测试, 原先的想法,直接写个循环10W次随便插入点数据试试吧,好吧,我真的很天真.... DROP PROCEDURE IF EXISTS proc_initData; ...
- C#语言之“string格式的日期时间字符串转为DateTime类型”的方法(转)
原文链接:http://www.cnblogs.com/Pickuper/articles/2058880.html 方法一:Convert.ToDateTime(string) string格式有要 ...
- 九度OJ 1107 搬水果 -- 哈夫曼树 2011年吉林大学计算机研究生机试真题
题目地址:http://ac.jobdu.com/problem.php?pid=1107 题目描述: 在一个果园里,小明已经将所有的水果打了下来,并按水果的不同种类分成了若干堆,小明决定把所有的水果 ...
- C++11中新特性之:initializer_list详解
C++11提供的新类型,定义在<initializer_list>头文件中. template< class T > class initializer_list; 先说它的用 ...
- js stringObject的indexOf方法
我所写的这个是基本知识的基本知识,为什么我还是要写呢,所谓说好记性不如烂比头,作为一名前端开发人员,太多相似的代码见的又太多,但是又不常见,所以很容易忘记,那我把indexOf原理讲清楚 indexO ...