3143: [Hnoi2013]游走

Time Limit: 10 Sec  Memory Limit: 128 MB
Submit: 3463  Solved: 1535
[Submit][Status][Discuss]

Description

一个无向连通图,顶点从1编号到N,边从1编号到M。 
小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分数。当小Z 到达N号顶点时游走结束,总分为所有获得的分数之和。 
现在,请你对这M条边进行编号,使得小Z获得的总分的期望值最小。

Input

第一行是正整数N和M,分别表示该图的顶点数 和边数,接下来M行每行是整数u,v(1≤u,v≤N),表示顶点u与顶点v之间存在一条边。 输入保证30%的数据满足N≤10,100%的数据满足2≤N≤500且是一个无向简单连通图。

Output

仅包含一个实数,表示最小的期望值,保留3位小数。

Sample Input

3 3
2 3
1 2
1 3

Sample Output

3.333

HINT

边(1,2)编号为1,边(1,3)编号2,边(2,3)编号为3。

这应该是一道经典题。

学习了一下用高斯消元解决一些dp序混乱的期望问题

安利下:用高斯消元解决一部分期望问题 学习笔记

之后这个题怎么做呢

我们考虑求每条边的期望经过次数/概率

考虑经过一条边 e(u,v) 的期望可以转化为

经过点 u/v 的期望 ÷degree(u)/degree(v)

点就要相对好求 由于手懒可以看↓ (有公式)

http://blog.csdn.net/vmurder/article/details/44542575

之后就高斯消元搞一搞就好了

#include<cmath>
#include<ctime>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#include<iomanip>
#include<vector>
#include<string>
#include<bitset>
#include<queue>
#include<map>
#include<set>
using namespace std;typedef double db;inline int read()
{int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch<='9'&&ch>='0'){x=x*10+ch-'0';ch=getchar();}return x*f;
}
void print(int x)
{if(x<0)putchar('-'),x=-x;if(x>=10)print(x/10);putchar(x%10+'0');}const int N=510,M=N*N;
const db eps=1e-8;int n,m;
int deg[N],U[M],V[M];db A[N][N];void gauss()
{register int i,j,k;for(i=1;i<=n;++i){k=0;for(j=i;j<=n;++j)if(abs(A[j][i])>eps){k=j;break;}if(!k) continue;if(k!=i)for(j=1;j<=n+1;++j)swap(A[i][j],A[k][j]);for(j=1;j<=n;++j)if(j!=i){db tmp(A[j][i]/A[i][i]);for(k=1;k<=n+1;++k)A[j][k]-=A[i][k]*tmp;}}
}db x[N],val[M];int main()
{n=read();m=read();register int i;for(i=1;i<=m;++i)U[i]=read(),V[i]=read(),deg[U[i]]++,deg[V[i]]++;for(i=1;i<=m;++i)A[U[i]][V[i]]+=1.0/deg[V[i]],A[V[i]][U[i]]+=1.0/deg[U[i]];for(i=1;i<=n;++i) A[i][i]=-1,A[i][n]=A[n][i]=0;A[1][n+1]=-1;A[n][n]=A[n][n+1]=1;gauss();for(i=1;i<n;++i) x[i]=A[i][n+1]/A[i][i];for(i=1;i<=m;++i)val[i]=x[U[i]]/deg[U[i]]+x[V[i]]/deg[V[i]];sort(val+1,val+1+m);db ans(0);for(i=1;i<=m;++i)ans+=val[i]*(m-i+1);printf("%.3lf\n",ans);return 0;
}

BZOJ 3143: [Hnoi2013]游走 高斯消元 期望相关推荐

  1. bzoj 3143: [Hnoi2013]游走(高斯消元)

    3143: [Hnoi2013]游走 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 3171  Solved: 1390 [Submit][Stat ...

  2. [BZOJ 3143][Hnoi2013]游走(高斯消元+期望)

    Description 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点, ...

  3. 【BZOJ】3143: [Hnoi2013]游走 期望+高斯消元

    [题意]给定n个点m条边的无向连通图,每条路径的代价是其编号大小,每个点等概率往周围走,要求给所有边编号,使得从1到n的期望总分最小(求该总分).n<=500. [算法]期望+高斯消元 [题解] ...

  4. BZOJ 3270: 博物馆 [概率DP 高斯消元]

    http://www.lydsy.com/JudgeOnline/problem.php?id=3270 题意:一张无向图,一开始两人分别在$x$和$y$,每一分钟在点$i$不走的概率为$p[i]$, ...

  5. BZOJ 2115 Wc2011 Xor DFS+高斯消元

    标题效果:鉴于无向图.右侧的每个边缘,求一个1至n路径,右上路径值XOR和最大 首先,一个XOR并能为一个路径1至n简单的路径和一些简单的XOR和环 我们开始DFS获得随机的1至n简单的路径和绘图环所 ...

  6. BZOJ 1778: [Usaco2010 Hol]Dotp 驱逐猪猡(高斯消元+期望dp)

    传送门 解题思路 设\(f(x)\)表示到\(x\)这个点的期望次数,那么转移方程为\(f(x)=\sum\frac{f(u)*(1 - \frac{p}{q})}{deg(u)}\),其中\(u\) ...

  7. BZOJ 2728 HNOI2012 与非 高斯消元

    题目大意:给定k位二进制下的n个数,求[l,r]区间内有多少个数能通过这几个数与非得到 首先观察真值表 我们有A nand A = not A 然后就有not ( A nand B ) = A and ...

  8. 洛谷3317 SDOI2014重建(高斯消元+期望)

    qwq 一开始想了个错的做法. 哎 直接开始说比较正确的做法吧. 首先我们考虑题目的\(ans\)该怎么去求 我们令\(x\)表示原图中的某一条边 \[ans = \sum \prod_{x\in t ...

  9. 线性代数五之高斯消元——[SDOI2010]外星千足虫,[HNOI2013]游走,[HNOI2011]XOR和路径,[hdu 4035]Maze

    多类型高斯消元杂题 [SDOI2010]外星千足虫 description solution code [HNOI2013]游走 description solution code [HNOI2011 ...

最新文章

  1. Python的继承多态
  2. ASP.NET Core Identity 实战(3)认证过程
  3. 大气的压力竟然能吊起相扑力士!?
  4. 机器视觉与Tesseract介绍
  5. SAP License:关于未分摊差异的几种处理办法
  6. vs新建一个excelpackage时间太长_炖牛肉vs煎牛肉,前者几小时后者几分钟,大厨告诉了我原因...
  7. 互联网后端技术栈大全,建议收藏!
  8. esp32之arduino配置下载提速
  9. (二)流(Stream)
  10. QA与SQA到底有什么区别和联系?他们的职责和工作内容是什么?QC,QM又是什么?
  11. 华为服务器鼠标不响应,华为笔记本电脑鼠标失灵没反应如何解决
  12. 我的小感悟(个人愚见)
  13. 军事ar虚拟现实电子沙盘系统的功能
  14. Matlab论文插图绘制模板第28期—柱状图(带误差棒errorbar)
  15. AUTO CAD出现无法识别的版本,如何解决?
  16. 数据技术之Hadoop(HFDS文件系统)
  17. php 处理png图片白色背景色改为透明色
  18. 串口通信(SBUF代码原理详解)
  19. 怎么在jq中添加html样式,jquery怎么添加css样式
  20. 苏州博物馆计算机系统操作工,行车及铁钢包调度系统在炼钢厂应用.doc

热门文章

  1. 通过HSSFWorkbook生成excel表格
  2. Python学习记录-项目案例实现:爬虫篇 03
  3. 云服务器ECS_云主机_服务器托管_弹性计算-阿里云
  4. 少年前线服务器维修,少年前线改造系统在哪 | 手游网游页游攻略大全
  5. CVE-2022-21882 Win32k内核提权漏洞深入分析
  6. 东华理工大学计算机科学与技术怎么样,东华理工大学计算机科学与技术专业介绍...
  7. secureCRT vscode配环境记录
  8. 卡尔曼滤波器公式推导
  9. 向科技要智慧,人脸识别智能门禁解锁智慧社区新未来
  10. ZMY_webview