题意 一个人打比赛 ,rating 有p的概率 为加50分 有1-p的概率为 x-100分 最大值为 1000 最小值为0

有两个号 每次拿较小的号来提交 , 计算最后到达 1000分得期望场数是多少,

对每个状态建立一个方程然后用高斯消元解决

  1. #include <iostream>
  2. #include <algorithm>
  3. #include <string.h>
  4. #include <cstdio>
  5. #include <cmath>
  6. using namespace std;
  7. const int maxn=;
  8. const double eps=0.000000001;
  9. int sgn(double f){
  10. if(fabs(f)<eps)return ;
  11. return f>?:-;
  12. }
  13. int id[maxn][maxn],cnt;
  14. int equ,var;//方程数和未知数个数
  15. double P;
  16. double a[][],x[];
  17. void perId()
  18. {
  19. cnt=;
  20. for(int i=; i<; i++)
  21. for(int j=; j<=i; j++)
  22. id[i][j]=cnt++;
  23. id[][]=cnt++;
  24. equ=var=cnt;
  25. }
  26. void init()
  27. {
  28. memset(a,,sizeof(a));
  29. for(int i=; i<; i++)
  30. for(int j=; j<=i ;j ++)
  31. {
  32. int u=id[i][j];
  33. x[ u ]=a[ u ][ u ] = 1.0;
  34. int nx,ny;
  35. nx=max( i , j+ ),ny=min( i , j+ );
  36. a[ u ][ id[nx][ny] ]-=P;
  37. nx=i; ny=max(j-,);
  38. a[ u ][ id[nx][ny] ]-=(-P);
  39. }
  40. x[cnt-]=0.0;
  41. a[cnt-][cnt-]=1.0;
  42. }
  43.  
  44. int Gauss()
  45. {
  46. int i,j,k,col,max_r;
  47. for(k=,col=;k<equ&&col<var;k++,col++)
  48. {
  49. max_r=k;
  50. for(i=k+;i<equ;i++)
  51. if(fabs(a[i][col])>fabs(a[max_r][col]))
  52. max_r=i;
  53. if(k!=max_r)
  54. {
  55. for(j=col;j<var;j++)
  56. swap(a[k][j],a[max_r][j]);
  57. swap(x[k],x[max_r]);
  58. }
  59. x[k]/=a[k][col];
  60. for(j=col+;j<var;j++)a[k][j]/=a[k][col];
  61. a[k][col]=;
  62. for(i=;i<equ;i++)
  63. if(i!=k)
  64. {
  65. x[i]-=x[k]*a[i][col];
  66. for(j=col+;j<var;j++)a[i][j]-=a[k][j]*a[i][col];
  67. a[i][col]=;
  68. }
  69. }
  70. return ;
  71. }
  72. int main()
  73. {
  74. perId();
  75.  
  76. while(scanf("%lf",&P)==)
  77. {
  78. init();
  79. Gauss();
  80. printf("%.6lf\n",x[]);
  81. }
  82. return ;
  83. }

hdu4870 高斯消元的更多相关文章

  1. hdu4870 Rating (高斯消元或者dp)

    Rating Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  2. 【BZOJ-3143】游走 高斯消元 + 概率期望

    3143: [Hnoi2013]游走 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 2264  Solved: 987[Submit][Status] ...

  3. 【BZOJ-3270】博物馆 高斯消元 + 概率期望

    3270: 博物馆 Time Limit: 30 Sec  Memory Limit: 128 MBSubmit: 292  Solved: 158[Submit][Status][Discuss] ...

  4. *POJ 1222 高斯消元

    EXTENDED LIGHTS OUT Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 9612   Accepted: 62 ...

  5. [bzoj1013][JSOI2008][球形空间产生器sphere] (高斯消元)

    Description 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困在了这个n维球体中,你只知道球 面上n+1个点的坐标,你需要以最快的速度确定这个n维球体的球心坐标,以便于摧 ...

  6. hihoCoder 1196 高斯消元·二

    Description 一个黑白网格,点一次会改变这个以及与其连通的其他方格的颜色,求最少点击次数使得所有全部变成黑色. Sol 高斯消元解异或方程组. 先建立一个方程组. \(x_i\) 表示这个点 ...

  7. BZOJ 2844 albus就是要第一个出场 ——高斯消元 线性基

    [题目分析] 高斯消元求线性基. 题目本身不难,但是两种维护线性基的方法引起了我的思考. void gauss(){ k=n; F(i,1,n){ F(j,i+1,n) if (a[j]>a[i ...

  8. SPOJ HIGH Highways ——Matrix-Tree定理 高斯消元

    [题目分析] Matrix-Tree定理+高斯消元 求矩阵行列式的值,就可以得到生成树的个数. 至于证明,可以去看Vflea King(炸树狂魔)的博客 [代码] #include <cmath ...

  9. UVALive 7138 The Matrix Revolutions(Matrix-Tree + 高斯消元)(2014 Asia Shanghai Regional Contest)

    题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=6 ...

随机推荐

  1. BOM简单总结

    先来说一下BOM,什么是BOM?BOM就是浏览器对象模型,大家都知道,ECMAScript是JavaScript的核心,但如果要在WEB中使用JavaScript,那么BOM则无疑才是真正的核心,BO ...

  2. qemu-kvm内存虚拟化1

    2017-04-18 记得很早之前分析过KVM内部内存虚拟化的原理,仅仅知道KVM管理一个个slot并以此为基础转换GPA到HVA,却忽略了qemu端最初内存的申请,而今有时间借助于qemu源码分析下 ...

  3. oracle中实现当前月减少或增加N个月

    add_months(last_day(trunc(sysdate)),N)N可以为正,表示增加:N可以为负,表示减少.

  4. spring学习(02)之配置文件没有提示问题

    配置文件没有提示问题 1 spring引入schema约束,把约束文件引入到eclipse中 (1)复制约束路径 http://www.springframework.org/schema/beans ...

  5. Docker 容器(六)

    镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体.容器可以被创建.启动.停止.删除.暂停等. 容器的实质是 ...

  6. (3.16)mysql基础深入——mysql字符集

    (3.16)mysql基础深入——mysql字符集 关键字:mysql字符集,mysql编码 目录 1.概念 2.常用的字符编码 3.查看mysql字符集 [3.1]查看服务器支持的字符集 [3.2] ...

  7. VueI18n的应用

    .npm install vue-i18n .在 main.js 中引入 vue-i18n import VueI18n from 'vue-i18n' Vue.use(VueI18n) .在main ...

  8. Scala集合(一)

    Scala集合的主要特质 Iterator,用来访问集合中所有元素 val coll = ... // 某种Iterable val iter = col.iterator while(iter.ha ...

  9. HBase 数据迁移方案介绍 (转载)

    原文地址:https://www.cnblogs.com/ballwql/p/hbase_data_transfer.html 一.前言 HBase数据迁移是很常见的操作,目前业界主要的迁移方式主要分 ...

  10. 263A

    #include<stdio.h> #include<stdlib.h> int main() { int i, j; int temp; int t_i, t_j; int ...