HDU4870 Rating(高斯消元)
有个人有两个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(高斯消元)相关推荐
- HDU 4870 Rating(高斯消元 )
HDU 4870 Rating 这是前几天多校的题目,高了好久突然听旁边的大神推出来说是可以用高斯消元,一直喊着赶快敲模板,对于从来没有接触过高斯消元的我来说根本就是一头雾水,无赖之下这几天做DP ...
- HDU4870_Rating_双号从零单排_高斯消元求期望
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4870 原题: Rating Time Limit: 10000/5000 MS (Java/Other ...
- Rocksdb Ribbon Filter : 结合 XOR-filter 以及 高斯消元算法 实现的 高效filter
文章目录 前言 XOR-filter 实现原理 xor filter 的构造原理 xor filter 构造总结 XOR-filter 和 ADD-filter对比 XOR-filter 在计算上的优 ...
- poj 1681 Painter#39;s Problem(高斯消元)
http://poj.org/problem? id=1681 求最少经过的步数使得输入的矩阵全变为y. 思路:高斯消元求出自由变元.然后枚举自由变元,求出最优值. 注意依据自由变元求其它解及求最优值 ...
- 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}的序列,现在裁判开始投掷骰子,并且把每次的 ...
- ICPC 2005 hangzhou Generator (UVA1358)KMP + 期望DP / 高斯消元
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Generator Weblink https://www.luogu.com.cn/problem/ ...
- 2020 ACM / ICPC 济南 A Matrix Equation (高斯消元、乘法原理)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 给你定义两种 010101 矩阵上的运算: Xi,j×Yi,j=(∑k=1NXi,kYk,j ...
- luogu P4035 [JSOI2008]球形空间产生器(高斯消元 / 模拟退火)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 数据范围只开到了10,而且是经典的力学结构,所以我们可以用模拟退火,可以做一下 nnn 维的正交分解h ...
- BZOJ 2707: [SDOI2012]走迷宫 [高斯消元 scc缩点]
2707: [SDOI2012]走迷宫 题意:求s走到t期望步数,\(n \le 10^4\),保证\(|SCC| \le 100\) 求scc缩点,每个scc高斯消元,scc之间直接DP 注意每次清 ...
最新文章
- Science:豆科植物如何建造“固氮工厂”?Murray组在根瘤共生机制取得重要进展...
- Oracle业务适合用PostgreSQL去O的一些评判标准
- Shell脚本案例:批量新增用户
- 软件测试qa等级考核制度,QA质量规范
- EasyNVR、EasyDSS二次开发之:RTMP、HLS流在web页面进行无插件播放示例Demo代码
- ZTree的全选 反选 全不选 取消 清空
- Linux宝库名人轶事栏目 | 云与我
- 高级商务办公软件应用【3】
- 如何监控Tuxedo中间件?Oralce TUXEDO监控方案
- 百度网盘视频加速代码
- 计算机网络未识别网络,电脑网络连接出现未识别的网络怎么办
- pixel2真机调试aosp
- win10便签常驻桌面_有没有比较好用的电脑桌面待办事项软件?桌面便签可以了解一下...
- Linux实操篇笔记
- unity转微信小程序小游戏
- 银行项目外包专题系列之二:公司没提升打杂,裸辞后收到银行外包,到底去还是不去
- 《编译原理》(三)词法分析
- 百度输入法键盘android,百度输入法Android 1.2.0正式版 支持智能手写
- Aurora8B10B IP使用 -04- IP例程应用实例
- 2020年第十一届蓝桥杯决赛Python组(真题+解析+代码):阶乘约数
热门文章
- 金字塔卷积 Pyramidal Convolution
- 程序员鼓励师,六年前昙花一现的职业,现在居然还存在?
- Jenkins部署发布(基于svn、ant)
- 航天a6网页版无法连接服务器,航天A6登录常见问题.ppt
- zigbee协议栈初使用(三)无线数据传输
- 电影数字服务器里播放文件字母意思,[转载]数字电影命名规则
- 2020年电信最便宜的套餐_电信套餐资费一览表2020年电信2020年的套餐资费一览表...
- 图像处理--基于像素层面
- 数据的异质性是什么意思?
- 【安全资讯】调查显示,近半数恶意软件藏身TLS加密通信