bzoj3143
之前我们曾经用dp解决过数学期望问题,这次我们用的是解方程的方法
首先在编号之前,肯定要求出每条边的期望经过次数
然后可以转化为求边端点的期望次数
这种做法我一开始接触是noip2013的初赛问题求解,是类似的思想
当出现循环无法用dp解决时,我们考虑列方程
设pi为点i的期望经过次数
则容易得到pi=sigma(pj/dj) dj表示出度,j是与i相邻的点
特殊的p1=1+sigma(pj/dj) pn=0(因为到n就停止了)
于是我们可以得到一个方程组,这样就可以用高斯消元求解
解出之后就能求出边的期望经过次数了,然后贪心分配编号即可
var w:array[..,..] of longint;
a:array[..,..] of double;
x,y:array[..] of longint;
c,p:array[..] of double;
d:array[..] of longint;
i,j,k,n,m:longint;
ans:double; procedure swap(var a,b:double);
var c:double;
begin
c:=a;
a:=b;
b:=c;
end; procedure calc;
var i,j,k,w:longint;
begin
for i:= to n do
begin
w:=i;
for k:=i+ to n do
if abs(a[k,i])>abs(a[w,i]) then w:=k;
if w<>i then
begin
for j:= to n+ do
swap(a[w,j],a[i,j]);
end;
for k:=i+ to n do
for j:=n+ downto i do
a[k,j]:=a[k,j]-a[i,j]*a[k,i]/a[i,i];
end;
p[n]:=;
for i:=n- downto do
begin
for j:=i+ to n do
a[i,n+]:=a[i,n+]-a[i,j]*p[j];
p[i]:=a[i,n+]/a[i,i];
end;
end; procedure sort(l,r: longint);
var i,j: longint;
x:double;
begin
i:=l;
j:=r;
x:=c[(l+r) shr ];
repeat
while c[i]<x do inc(i);
while x<c[j] do dec(j);
if not(i>j) then
begin
swap(c[i],c[j]);
inc(i);
j:=j-;
end;
until i>j;
if l<j then sort(l,j);
if i<r then sort(i,r);
end; begin
readln(n,m);
for i:= to m do
begin
readln(x[i],y[i]);
inc(d[x[i]]);
inc(d[y[i]]);
w[x[i],d[x[i]]]:=y[i];
w[y[i],d[y[i]]]:=x[i];
end;
a[,]:=-;
for i:= to d[] do
begin
k:=w[,i];
a[,k]:=/d[k];
end;
a[,n+]:=-;
for i:= to n- do
begin
for j:= to d[i] do
begin
k:=w[i,j];
a[i,k]:=/d[k];
end;
a[i,i]:=-;
end;
a[n,n]:=;
calc;
for i:= to m do
c[i]:=p[x[i]]/d[x[i]]+p[y[i]]/d[y[i]];
sort(,m);
for i:= to m do
ans:=ans+c[i]*(m-i+);
writeln(ans::);
end.
bzoj3143的更多相关文章
- 【bzoj3143】 Hnoi2013—游走
http://www.lydsy.com/JudgeOnline/problem.php?id=3143 (题目链接) 题意 一个无向连通图,顶点从1编号到N,边从1编号到M.每一步以相等的概率随机选 ...
- 【BZOJ3143】游走(高斯消元,数学期望)
[BZOJ3143]游走(高斯消元,数学期望) 题面 BZOJ 题解 首先,概率不会直接算... 所以来一个逼近法算概率 这样就可以求出每一条边的概率 随着走的步数的增多,答案越接近 (我卡到\(50 ...
- 浅谈期望的线性性(可加性)【CodeForces280c】【bzoj3036】【bzoj3143】
[pixiv] https://www.pixiv.net/member_illust.php?mode=medium&illust_id=63399955 向大(hei)佬(e)势力学(di ...
- 【数学期望】【高斯消元】bzoj3143 [Hnoi2013]游走
和hdu5955很像.也是注意从结点1出发,其概率要在方程左侧+1. 边的期望和点的期望之间转换巧妙 http://blog.csdn.net/thy_asdf/article/details/473 ...
- 【BZOJ3143】[Hnoi2013]游走 期望DP+高斯消元
[BZOJ3143][Hnoi2013]游走 Description 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 ...
- 【BZOJ3143】【HNOI2013】游走 && 【BZOJ3270】博物馆 【高斯消元+概率期望】
刚学完 高斯消元,我们来做几道题吧! T1:[BZOJ3143][HNOI2013]游走 Description 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小 ...
- 【Hnoi2013】Bzoj3143 游走
Position: http://www.lydsy.com/JudgeOnline/problem.php?id=3143 List Bzoj3143 Hnoi2013 游走 List Descri ...
- 【BZOJ-3143】游走 高斯消元 + 概率期望
3143: [Hnoi2013]游走 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2264 Solved: 987[Submit][Status] ...
- BZOJ3143 [Hnoi2013]游走
首先高斯消元解出每个点被走到的概率 注意到这里走到$n$就停下来了,所以$P(n) = 0$ 解出来以后,给每条边$(u, v)$赋边权$P(u) + P(v)$即可,然后直接贪心 /******** ...
随机推荐
- thinkphp 常见问题
0.写在最前面的不断更新 (1)trace不起作用 A:必须要输出到模板,才会有trace信息 (2)提示“您浏览的页面暂时发生了错误!请稍后再试-” A:检查控制器(看看能进到控制器没有,设断点输出 ...
- .Net程序员学习Linux(二)
本次知识点:递归命令符,wc命令,文档编辑器 vi的简单使用,文本常用操作命令,find查询文件命令,grep匹配文本中对应的关键字 递归命令符 递归对于程序猿来说不默认,经常用于级联关系,一层套一层 ...
- Apache Hadoop2.0之HDFS均衡操作分析
1 HDFS均衡操作原理 HDFS默认的块的副本存放策略是在发起请求的客户端存放一个副本,如果这个客户端在集群以外,那就选择一个不是太忙,存储不是太满的节点来存放,第二个副本放在与第一个副本相同的机架 ...
- [页面辅助] 最新的 PageValidate 类 (转载)
代码 using System; using System.Data; using System.Configuration; using System.Web; using System.Text. ...
- 8第八章CTE递归及分组汇总高级部分(多维数据集)(转载)
8第八章CTE递归及分组汇总高级部分(多维数据集) 这里贴图太麻烦...算了 UNION 等集合操作符: UNION 等以第一个 SELECT 的 列明 作为 整个结果集的列明,整个结果集 唯一认可 ...
- OC细节 - 1.深拷贝与浅拷贝详解
概述 拷贝:复制一个与源对象内容相同的对象 实现拷贝,需要遵守以下两个协议 NSCopying NSMutableCopying 拷贝返回对象的种类 可变,mutableCopy消息返回的对象 不可变 ...
- 配置wamp开发环境【1】
新手在PHP网站建设时,会使用使用PHP的集成开发环境,这样利于开发和理解!但是做为一个网站开发人员,会独立的配置开发环境这是必须的……因为集成的环境毕竟是固定的,不利于自己的开发.好,废话少说咱现在 ...
- SGU Volume 2
SGU200.Cracking RSA------------------------★高斯消元 SGU207.Robbers -------------------------------数论 SG ...
- sencha touch中按钮的ui配置选项值及使用效果
- Faces.JavaServer Pages(JSP)
zhengly.cn atitit.Servlet2.5 Servlet 3.0 新特性 jsp2.0 jsp2.1 jsp2.2新特性 1.1. Servlet和JSP规范版本对应关系:1 1.2. ...