有个人有两个0分账号,他可以打比赛,他每次用分低的那个账号打比赛,

有p的概率名列前茅,加50分(上限1000分)

否则掉100分(下限0分)。问有一个账号到1000分的期望。


先压缩一下状态,把505050看作111,把100100100看作222,把100010001000看作202020

那么就是一个dp[20][20]dp[20][20]dp[20][20]的方程

表示最高分是iii,次高分是jjj的期望步数

dp[i][j]=dp[ii][jj]∗p+dp[iii][jjj]∗(1−p)+1dp[i][j]=dp[ii][jj]*p+dp[iii][jjj]*(1-p)+1dp[i][j]=dp[ii][jj]∗p+dp[iii][jjj]∗(1−p)+1

其中ii,jjii,jjii,jj是赢得比赛加分后的状态,iii,jjjiii,jjjiii,jjj是输掉比赛…

但是jjj依赖前面比jjj小的和后面比jjj大的

这样就直接上高斯消元了.

#include <bits/stdc++.h>
using namespace std;
int id[509][509];
double mp[509][509],ans[509],p;
void add(int i,int j,double w){mp[i][j]+=w;
}
void guess(int n)//第n列是等式的右边
{for(int i=1;i<=n;i++)//现在开始消除i列 {int r=i;//记录系数最大的 for(int j=i+1;j<=n;j++)if( fabs( mp[r][i] )<fabs( mp[j][i] ) )   r=j;if( i!=r )    swap( mp[i],mp[r] );//把系数最大的换到当前行double div = mp[i][i];for(int j=i;j<=n+1;j++) mp[i][j]/=div;for(int j=i+1;j<=n;j++)//开始消元{div = mp[j][i];for(int k=i;k<=n+1;k++)mp[j][k]-=mp[i][k]*div;    }}ans[n] = mp[n][n+1];for(int i=n-1;i>=1;i--){ans[i]=mp[i][n+1];for(int j=i+1;j<=n;j++)ans[i]-=mp[i][j]*ans[j];//i之后的解出来了,那么减掉 }
}
int main()
{int num=0;for(int i=0;i<=20;i++)for(int j=0;j<=i;j++)id[i][j] = ++num;while( cin >> p ){memset(mp,0,sizeof(mp));for(int i=0;i<=20;i++)add( id[20][i],id[20][i],-1.0 );for(int i=0;i<20;i++)for(int j=0;j<=i;j++){add( id[i][j],id[i][j],-1.0 );int up = min(20,j+1);int down = max(0,j-2);int q = min(i,up), w = max(i,up);add( id[i][j],id[w][q],p );q = min(i,down), w = max(i,down);add( id[i][j],id[w][q],1.0-p );add( id[i][j],num+1,-1.0 );}guess(num);printf("%.6lf\n",ans[1] );}
}

HDU4870 Rating(高斯消元)相关推荐

  1. HDU 4870 Rating(高斯消元 )

    HDU 4870   Rating 这是前几天多校的题目,高了好久突然听旁边的大神推出来说是可以用高斯消元,一直喊着赶快敲模板,对于从来没有接触过高斯消元的我来说根本就是一头雾水,无赖之下这几天做DP ...

  2. HDU4870_Rating_双号从零单排_高斯消元求期望

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4870 原题: Rating Time Limit: 10000/5000 MS (Java/Other ...

  3. Rocksdb Ribbon Filter : 结合 XOR-filter 以及 高斯消元算法 实现的 高效filter

    文章目录 前言 XOR-filter 实现原理 xor filter 的构造原理 xor filter 构造总结 XOR-filter 和 ADD-filter对比 XOR-filter 在计算上的优 ...

  4. poj 1681 Painter#39;s Problem(高斯消元)

    http://poj.org/problem? id=1681 求最少经过的步数使得输入的矩阵全变为y. 思路:高斯消元求出自由变元.然后枚举自由变元,求出最优值. 注意依据自由变元求其它解及求最优值 ...

  5. AC自动机 + 概率dp + 高斯消元 --- HDU 5955 or 2016年沈阳icpc H [AC自动机 + 概率dp + 高斯消元]详解

    题目链接 题目大意: 就是有NNN个人,每个人都会猜一个长度为LLL的只包含{1,2,3,4,5,6}\{1,2,3,4,5,6\}{1,2,3,4,5,6}的序列,现在裁判开始投掷骰子,并且把每次的 ...

  6. ICPC 2005 hangzhou Generator (UVA1358)KMP + 期望DP / 高斯消元

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Generator Weblink https://www.luogu.com.cn/problem/ ...

  7. 2020 ACM / ICPC 济南 A Matrix Equation (高斯消元、乘法原理)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 给你定义两种 010101 矩阵上的运算: Xi,j×Yi,j=(∑k=1NXi,kYk,j ...

  8. luogu P4035 [JSOI2008]球形空间产生器(高斯消元 / 模拟退火)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 数据范围只开到了10,而且是经典的力学结构,所以我们可以用模拟退火,可以做一下 nnn 维的正交分解h ...

  9. BZOJ 2707: [SDOI2012]走迷宫 [高斯消元 scc缩点]

    2707: [SDOI2012]走迷宫 题意:求s走到t期望步数,\(n \le 10^4\),保证\(|SCC| \le 100\) 求scc缩点,每个scc高斯消元,scc之间直接DP 注意每次清 ...

最新文章

  1. Science:豆科植物如何建造“固氮工厂”?Murray组在根瘤共生机制取得重要进展...
  2. Oracle业务适合用PostgreSQL去O的一些评判标准
  3. Shell脚本案例:批量新增用户
  4. 软件测试qa等级考核制度,QA质量规范
  5. EasyNVR、EasyDSS二次开发之:RTMP、HLS流在web页面进行无插件播放示例Demo代码
  6. ZTree的全选 反选 全不选 取消 清空
  7. Linux宝库名人轶事栏目 | 云与我
  8. 高级商务办公软件应用【3】
  9. 如何监控Tuxedo中间件?Oralce TUXEDO监控方案
  10. 百度网盘视频加速代码
  11. 计算机网络未识别网络,电脑网络连接出现未识别的网络怎么办
  12. pixel2真机调试aosp
  13. win10便签常驻桌面_有没有比较好用的电脑桌面待办事项软件?桌面便签可以了解一下...
  14. Linux实操篇笔记
  15. unity转微信小程序小游戏
  16. 银行项目外包专题系列之二:公司没提升打杂,裸辞后收到银行外包,到底去还是不去
  17. 《编译原理》(三)词法分析
  18. 百度输入法键盘android,百度输入法Android 1.2.0正式版 支持智能手写
  19. Aurora8B10B IP使用 -04- IP例程应用实例
  20. 2020年第十一届蓝桥杯决赛Python组(真题+解析+代码):阶乘约数

热门文章

  1. 金字塔卷积 Pyramidal Convolution
  2. 程序员鼓励师,六年前昙花一现的职业,现在居然还存在?
  3. Jenkins部署发布(基于svn、ant)
  4. 航天a6网页版无法连接服务器,航天A6登录常见问题.ppt
  5. zigbee协议栈初使用(三)无线数据传输
  6. 电影数字服务器里播放文件字母意思,[转载]数字电影命名规则
  7. 2020年电信最便宜的套餐_电信套餐资费一览表2020年电信2020年的套餐资费一览表...
  8. 图像处理--基于像素层面
  9. 数据的异质性是什么意思?
  10. 【安全资讯】调查显示,近半数恶意软件藏身TLS加密通信