游走 bzoj 3143
游走
【问题描述】

【输入格式】

【输出格式】

【样例输入】
3 3
2 3
1 2
1 3
【样例输出】
3.333
【样例说明】

题解:
题意是给一个简单无向连通图,给每条边赋上权值,使期望值最小
贪心让被走到概率大的边的权值小,就可得到最小的期望值
设每个点被走到的概率为p, 出度为d
那么p[i] = Σ p[j] / d[j] (i,j 之间有连边) (从 j 出发选到 i 与 j 连边的概率为 1 / d[j])
移项得 Σ p[j] / d[j] - p[i] = 0
对于每个点我们都可以列出一个含有n个未知数的方程
特别地,p[1]概率需要加一 , p[n] = 1 (起点为1,终点为n)
那么就可以进行高斯消元啦
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<cmath>
using namespace std;
inline void Scan(int &x)
{
char c;
while((c = getchar()) < '' || c > '');
x = c - '';
while((c = getchar()) >= '' && c <= '') x = (x << ) + (x << ) + c - '';
}
double eps = 1e-;
int n, m;
double c[];
double a[][];
int x[], y[];
int de[];
double ans;
inline void Solve()
{
int now;
double t;
for(int i = ; i <= n; ++i)
{
now = i;
while(fabs(a[i][now]) <= eps && now <= n) ++now;
if(now > n) continue;
for(int j = ; j <= n + ; ++j) swap(a[i][j], a[now][j]);
t = a[i][i];
for(int j = ; j <= n + ; ++j) a[i][j] /= t;
for(int j = ; j <= n; ++j)
if(i != j)
{
t = a[j][i];
for(int k = ; k <= n + ; ++k)
a[j][k] -= a[i][k] * t;
}
}
}
int main()
{
Scan(n), Scan(m);
for(int i = ; i <= m; ++i)
{
Scan(x[i]), Scan(y[i]);
++de[x[i]], ++de[y[i]];
}
for(int i = ; i <= m; ++i)
{
a[x[i]][y[i]] += 1.0 / (double) de[y[i]];
a[y[i]][x[i]] += 1.0 / (double) de[x[i]];
}
for(int i = ; i <= n + ; ++i) a[n][i] = ;
for(int i = ; i <= n; ++i) a[i][i] = -;
a[][n + ] = -;
Solve();
for(int i = ; i <= m; ++i)
c[i] = a[x[i]][n + ] / (double) de[x[i]] + a[y[i]][n + ] / (double) de[y[i]];
sort(c + , c + + m);
for(int i = ; i <= m; ++i)
ans += c[i] * (m - i + );
printf("%.3lf", ans);
}
游走 bzoj 3143的更多相关文章
- 3143: [Hnoi2013]游走 - BZOJ
Description 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点, ...
- BZOJ 3143 HNOI2013 游走 高斯消元 期望
这道题是我第一次使用高斯消元解决期望类的问题,首发A了,感觉爽爽的.... 不过笔者在做完后发现了一些问题,在原文的后面进行了说明. 中文题目,就不翻大意了,直接给原题: 一个无向连通图,顶点从1编号 ...
- BZOJ 3143 游走 | 数学期望 高斯消元
啊 我永远喜欢期望题 BZOJ 3143 游走 题意 有一个n个点m条边的无向联通图,每条边按1~m编号,从1号点出发,每次随机选择与当前点相连的一条边,走到这条边的另一个端点,一旦走到n号节点就停下 ...
- 【BZOJ】【3143】【HNOI2013】游走
数学期望/高斯消元/贪心 啊……用贪心的思路明显是要把经过次数期望越大的边的权值定的越小,那么接下来的任务就是求每条边的期望经过次数. 拆边为点?nonono,连接x,y两点的边的期望经过次数明显是 ...
- BZOJ 3143 游走(高斯消元)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=3143 题意:一个无向连通图,顶点从1编号到n,边从1编号到m.小Z在该图上进行随机游走, ...
- bzoj 3143: [Hnoi2013]游走 高斯消元
3143: [Hnoi2013]游走 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1026 Solved: 448[Submit][Status] ...
- BZOJ 3143: [Hnoi2013]游走 [概率DP 高斯消元]
一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分 ...
- bzoj 3143 随机游走
题意: 给一个简单无向图,一个人从1号节点开始随机游走(即以相同概率走向与它相邻的点),走到n便停止,问每条边期望走的步数. 首先求出每个点期望走到的次数,每条边自然是从它的两个端点走来. /**** ...
- bzoj 3143: [Hnoi2013]游走
Description 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点, ...
随机推荐
- 01.SQLServer性能优化之---水平分库扩展
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 第一次引入文件组的概念:http://www.cnblogs.com/dunitian/ ...
- .net 分布式架构之业务消息队列
开源QQ群: .net 开源基础服务 238543768 开源地址: http://git.oschina.net/chejiangyi/Dyd.BusinessMQ ## 业务消息队列 ##业务消 ...
- 用scikit-learn学习谱聚类
在谱聚类(spectral clustering)原理总结中,我们对谱聚类的原理做了总结.这里我们就对scikit-learn中谱聚类的使用做一个总结. 1. scikit-learn谱聚类概述 在s ...
- java常用的设计模式
设计模式:一个程序员对设计模式的理解:"不懂"为什么要把很简单的东西搞得那么复杂.后来随着软件开发经验的增加才开始明白我所看到的"复杂"恰恰就是设计模式的精髓所 ...
- 【转】 FineBI:自助式BI工具打造业务分析的“快与准”
如今的企业经营方式,业务对于数据分析有极大的需求,但却苦于没有数据以及工具的有效支持,业务分析仍就依赖于IT报表制作.而IT方不断地按业务需求去调研.确认业务逻辑,然后取数做报表,其中还要忍受业务的需 ...
- 解决使用IE8打开ADFS 3.0登录页面
系统上线前一天,发现客户竟然有XP系统和2003系统,这些系统都不能访问外网.测试时,客户端是IE8,打开我们系统ADFS的登录页面,一直在Loading,无法打开,也不报错.后来通过fiddler跟 ...
- arcpy+PyQt+py2exe快速开发桌面端ArcGIS应用程序
前段时间有一个项目,大体是要做一个GIS数据处理工具. 一般的方法是基于ArcObjects来进行开发,因为我对ArcObjects不太熟悉,所以就思考有没有其他简单快速的方法来做. 在查看ArcGI ...
- 初识git版本控制系统
当下git分布式版本控制系统越来越火,掌握git也是必须的一个技能.因此,对git做了如下学习. Git初级指南 1. 先安装git.(ps:在select cmponents处要勾选Git Bash ...
- SpringMVC视图解析器
SpringMVC视图解析器 前言 在前一篇博客中讲了SpringMVC的Controller控制器,在这篇博客中将接着介绍一下SpringMVC视 图解析器.当我们对SpringMVC控制的资源发起 ...
- Disque:Redis之父新开源的分布式内存作业队列
Disque是Redis之父Salvatore Sanfilippo新开源的一个分布式内存消息代理.它适应于"Redis作为作业队列"的场景,但采用了一种专用.独立.可扩展且具有容 ...