比较经典的题,题解看网上的。。https://www.cnblogs.com/GXZlegend/p/7054536.html

自己sort弄错了。。还以为是高斯消元写歪了。。

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. const int maxn = ;
  5. const double esp = 1e-;
  6.  
  7. struct Edge{int u,v;double E;}e[maxn*maxn];
  8. int mp[maxn][maxn],d[maxn],n,m;
  9. double E[maxn][maxn],b[maxn];
  10. int cmp(Edge a,Edge b){return a.E>b.E;}
  11.  
  12. void guass(){
  13. for(int i=;i<=n;i++){
  14. int maxx=i;
  15. for(int j=i;j<=n;j++){
  16. if(fabs(E[j][i])>esp&&fabs(E[j][i])>fabs(E[maxx][i]))maxx=j;
  17. }
  18. if(maxx!=i){
  19. swap(E[maxx],E[i]);
  20. swap(b[maxx],b[i]);
  21. }
  22.  
  23. if(fabs(E[i][i])<esp)continue;
  24. for(int j=i+;j<=n;j++){
  25. if(fabs(E[j][i])<esp)continue;
  26. double rate=E[j][i]/E[i][i];
  27. for(int k=i;k<=n;k++)
  28. E[j][k]-=rate*E[i][k];
  29. b[j]-=rate*b[i];
  30. }
  31. }
  32.  
  33. for(int i=n;i>=;i--){
  34. if(fabs(E[i][i])<esp)continue;
  35. for(int j=i+;j<=n;j++)
  36. b[i]-=E[i][j]*b[j];
  37. b[i]/=E[i][i];
  38. }
  39. }
  40.  
  41. int main(){
  42. scanf("%d%d",&n,&m);
  43. for(int i=;i<=m;i++){
  44. int u,v;
  45. scanf("%d%d",&u,&v);
  46. mp[u][v]=mp[v][u]=;
  47. d[u]++;d[v]++;
  48. e[i].u=u;e[i].v=v;
  49. }
  50.  
  51. //建立矩阵
  52. E[n][n]=b[]=;
  53. for(int i=;i<n;i++){
  54. E[i][i]=;
  55. for(int j=;j<=n;j++)
  56. if(mp[i][j])E[i][j]-=1.0/d[j];
  57. }
  58. guass();
  59.  
  60. for(int i=;i<=m;i++){
  61. int u=e[i].u,v=e[i].v;
  62. e[i].E=b[u]/d[u] + b[v]/d[v];
  63. }
  64. sort(e+,e++m,cmp);
  65. double ans=;
  66. for(int i=;i<=m;i++)
  67. ans+=e[i].E*i;
  68. printf("%.3lf\n",ans);
  69. }

期望dp+高斯消元——bzoj3143的更多相关文章

  1. BZOJ_3143_[Hnoi2013]游走_期望DP+高斯消元

    BZOJ_3143_[Hnoi2013]游走_期望DP+高斯消元 题意: 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机 ...

  2. 【BZOJ3143】[Hnoi2013]游走 期望DP+高斯消元

    [BZOJ3143][Hnoi2013]游走 Description 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 ...

  3. bzoj3143 游走 期望dp+高斯消元

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

  4. BZOJ3143: [Hnoi2013]游走(期望DP 高斯消元)

    Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 3597  Solved: 1618[Submit][Status][Discuss] Descript ...

  5. HDU 2262 Where is the canteen 期望dp+高斯消元

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2262 Where is the canteen Time Limit: 10000/5000 MS ...

  6. hdu4418 Time travel 【期望dp + 高斯消元】

    题目链接 BZOJ4418 题解 题意:从一个序列上某一点开始沿一个方向走,走到头返回,每次走的步长各有概率,问走到一点的期望步数,或者无解 我们先将序列倍长形成循环序列,\(n = (N - 1) ...

  7. 【noi2019集训题1】 脑部进食 期望dp+高斯消元

    题目大意:有n个点,m条有向边,每条边上有一个小写字母. 有一个人从1号点开始在这个图上随机游走,游走过程中他会按顺序记录下走过的边上的字符. 如果在某个时刻,他记录下的字符串中,存在一个子序列和S2 ...

  8. LightOJ 1151 Snakes and Ladders 期望dp+高斯消元

    题目传送门 题目大意:10*10的地图,不过可以直接看成1*100的,从1出发,要到达100,每次走的步数用一个大小为6的骰子决定.地图上有很多个通道 A可以直接到B,不过A和B大小不确定   而且 ...

  9. P4457-[BJOI2018]治疗之雨【期望dp,高斯消元】

    正题 题目链接:https://www.luogu.com.cn/problem/P4457 题目大意 开始一个人最大生命值为\(n\),剩余\(hp\)点生命,然后每个时刻如果生命值没有满那么有\( ...

随机推荐

  1. GitHub上传项目之初体验

    git工具是很早之前安装的,之前还没有github账号,现在注册了一个,想学一下托管自己的项目和代码. 登录github账号之后,点击绿色的"New repository",输入名 ...

  2. 代码托管平台--GitHub 使用小结

    一.GitHub介绍 GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git作为唯一的版本库格式进行托管.在GitHub,用户可以十分轻易地找到海量的开源代码. 很多IT行业的人到求职的 ...

  3. 解决mac下,javac命令出现的乱码问题

    今天突然检查我的jdk安装,发现出现了乱码 一,出现乱码

  4. [LOJ#6468.] 魔法

    官方题解 看了题解才会做.. 首先考虑如果所有询问的点都是[1,n]的做法,如果询问是[l,r]只需要把多余的去掉就好了 然后要把问题转化为一个点对其他附近的点的贡献 记$pre[i]$为第i个位置的 ...

  5. 【学术篇】SDOI2009 SuperGCD

    特别说明: 为了避免以后搬家时的麻烦, 这里的文章继续沿用csdn的风格和分类好了~ Emmmm这个题是一道高精度的模板题啊~ 既然是高精度的裸题, 那我们这些懒人当然是选择:用python啦~ 懒癌 ...

  6. 解决在移动端上 click事件延迟300 毫秒的问题 fastclick.js

    1 为什么会发生延迟300毫秒的问题 移动设备上的浏览器默认会在用户点击屏幕大约延迟300毫秒后才会触发点击事件,这是为了检查用户是否在做双击.为了能够立即响应用户的点击事件,才有了FastClick ...

  7. Qt 【无法打开 xxxx头文件】

    经过多次磕碰,终于发现了通用的办法. 测试环境Qt5.5.1 mvcs 比如需要用到QtWin 直接去包含然后运行,but fail, 我去查找他的父类  QtWinExtras Qt自带的自动补全, ...

  8. 关于sublime使用中写less代码高亮显示问题

    一开始在没有配置的情况下在sublime中写less代码是不会有高亮显示的.下面说一下配置过程 一.安装Less2Css模块 打开sublime,ctrl+shift+p,输入package cont ...

  9. leetcood学习笔记-226- 翻转二叉树

    题目描述: 第一次提交: class Solution(object): def invertTree(self, root): """ :type root: Tree ...

  10. MapReduce分区数据倾斜

    什么是数据倾斜? 数据不可避免的出现离群值,并导致数据倾斜,数据倾斜会显著的拖慢MR的执行速度 常见数据倾斜有以下几类 1.数据频率倾斜   某一个区域的数据量要远远大于其他区域 2.数据大小倾斜  ...