题目链接  2014 多校1 Problem J

题意  现在有两个账号,初始$rating$都为$0$,现在每次打分比较低的那个,如果进前$200$那么就涨$50$分,否则跌$100$分。

    每一次打进前$200$的概率为$p$,且每一次竞赛是相互独立的。求当一个号打到$1000$分时已经打的期望场数。

把$1000$变成$20$,并且分析出所有有效的状态。

有效的状态一共$211$个。

$(0, 0)$

$(1, 0), (1, 1)$

$(2, 0), (2, 1), (2, 2)$

......

$(19, 0), (19, 1), (19, 2), ..., (19, 19)$

再加一个$(20, 19)$,这是目标状态。

设$f(x, y)$为$(x, y)$状态时所需要到达目标的期望场数。

显然$f(19, 20) = 0$

设$(x, y)$赢了之后状态为$(x1, y1)$, 输了之后状态为$(x2, y2)$

那么$f(x, y) = p*f(x1, y1) + (1-p)*f(x2, y2) + 1$

注意状态$(0, 0)$输了之后还是$(0, 0)$

那么建立211个方程组,高斯消元求解即可。

#include <bits/stdc++.h>

using namespace std;

#define rep(i, a, b)    for (int i(a); i <= (b); ++i)
#define dec(i, a, b) for (int i(a); i >= (b); --i) typedef long long LL; const int N = 235;
const double eps = 1e-12; double a[N][N], x[N], p;
int equ, var;
int c[N][N];
int cnt;
int y; void Gauss(){
int row, col, max_r;
row = col = 0;
while (row < equ && col < var){
max_r = row;
rep(i, row + 1, equ - 1) if (fabs(a[i][col]) - fabs(a[max_r][col]) > eps) max_r = i;
if (max_r != row) rep(j, col, var) swap(a[row][j], a[max_r][j]); if (fabs(a[row][col]) < eps){
col++;
continue;
} rep(i, row + 1, equ - 1){
if (fabs(a[i][col]) > eps){
double t = a[i][col] / a[row][col];
a[i][col] = 0.0;
rep(j, col + 1, var) a[i][j] -= a[row][j] * t;
}
}
row++;
col++;
} dec(i, equ - 1, 0){
if (fabs(a[i][i]) < eps) continue;
double tmp = a[i][var];
rep(j, i + 1, var - 1) tmp -= a[i][j] * x[j];
x[i] = tmp / a[i][i];
}
} int main(){ cnt = 0;
for (int i = 0; i <= 22; ++i){
for (int j = 0; j <= 22; ++j){
c[i][j] = -1e9;
}
} rep(i, 0, 19) rep(j, 0, i) c[i][j] = cnt++;
c[20][19] = cnt++; equ = var = cnt; while (~scanf("%lf", &p)){
memset(a, 0, sizeof a);
rep(i, 0, 19){
rep(j, 0, i - 1){
y = c[i][j];
a[y][y] = 1;
a[y][211] = 1;
a[y][c[i][max(0, j - 2)]] -= (1 - p);
a[y][c[i][j + 1]] -= p;
}
y = c[i][i];
a[y][y] = 1;
a[y][211] = 1;
a[y][c[i][max(0, i - 2)]] -= (1 - p);
a[y][c[i + 1][i]] -= p;
} a[210][210] = 1;
Gauss();
printf("%.6lf\n", x[0]);
} return 0;
}

  

HDU 4870 Rating (高斯消元)的更多相关文章

  1. hdu 4870 rating(高斯消元求期望)

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

  2. HDU 3949 XOR 高斯消元

    题目大意:给定一个数组,求这些数组通过异或能得到的数中的第k小是多少 首先高斯消元求出线性基,然后将k依照二进制拆分就可以 注意当高斯消元结束后若末尾有0则第1小是0 特判一下然后k-- 然后HDU输 ...

  3. hdu 5755(高斯消元——模线性方程组模板)

    PS. 看了大神的题解,发现确实可以用m个未知数的高斯消元做.因为确定了第一行的情况,之后所有行的情况都可以根据第一行推. 这样复杂度直接变成O(m*m*m) 知道了是高斯消元后,其实只要稍加处理,就 ...

  4. HDU 3949 XOR [高斯消元XOR 线性基]

    3949冰上走 题意: 给你 N个数,从中取出若干个进行异或运算 , 求最后所有可以得到的异或结果中的第k小值 N个数高斯消元求出线性基后,设秩为$r$,那么总共可以组成$2^r$中数字(本题不能不选 ...

  5. Time travel HDU - 4418(高斯消元)

    Agent K is one of the greatest agents in a secret organization called Men in Black. Once he needs to ...

  6. hdu 6465 线性变换高斯消元

    http://acm.hdu.edu.cn/showproblem.php?pid=6465 题意 给你三个点,再给你经过线性变换后的三个点,然后q次询问,给你一个点,需要你输出线性变换后的点 题解 ...

  7. HDU 3364 Lanterns 高斯消元

    Lanterns Problem Description   Alice has received a beautiful present from Bob. The present contains ...

  8. HDU 3915 Game (高斯消元)

    题意:有n堆石子,每个人只能从某一堆至少拿走一个,不能拿者败.问事先拿走某些堆的石子,使得先手必败. 析:将石子拆成二进制,未知数为1表示保留该堆石子,为0表示事先拿走该堆石子.最后求自由变元的数目, ...

  9. HDU 4870 Rating(高斯消元 )

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

  10. 2014多校第一场J题 || HDU 4870 Rating(DP || 高斯消元)

    题目链接 题意 :小女孩注册了两个比赛的帐号,初始分值都为0,每做一次比赛如果排名在前两百名,rating涨50,否则降100,告诉你她每次比赛在前两百名的概率p,如果她每次做题都用两个账号中分数低的 ...

随机推荐

  1. 2019腾讯暑期实习面试(offer)前端

    最近在忙着准备找实习,所以没有更新之前的文章. 不过所幸功夫不负有心人,我拿到了腾讯的offer. 这里分享一下面试的经验. 简介 本人双非本科,普通学生一枚. 面的是腾讯的Web前端开发. 整个面试 ...

  2. 《Scrum实战》第4次课【全职的Scrum Master】作业汇总

    1组: 孟帅 http://www.cnblogs.com/mengshuai1982/p/7375008.html 3组: 张亚辉 http://www.jianshu.com/p/df9eee08 ...

  3. MongoDB快速入门学习笔记2 MongoDB的概念及简单操作

    1.以下列举普通的关系型数据库和MongoDB数据库简单概念上的区别: 关系型数据库 MongoDB数据库 说明 database database 数据库 table collection 数据库表 ...

  4. Python+Selenium基础篇之4-XPath的使用

    开始写自动化脚本之前,我们先学习几个概念,在完全掌握了这几个概念之后,有助于我们快速上手,如何去编写自动化测试脚本. 元素,在这个教程系列,我们说的元素之网页元素(web element).在网页上面 ...

  5. python week09 Mysql 数据库基础知识

    第一篇:初识数据库 注:<基础概念,不再赘述,点开链接查看> 第二篇:库相关操作 一 系统数据库 information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些 ...

  6. 课堂笔记III

  7. Puppet单机实战之Nginx代理Tomcat

    author:JevonWei 版权声明:原创作品 blog:http://119.23.52.191/ --- 构建实战之Nginx代理Tomcat [root@node1 modules]# mk ...

  8. 【bzoj4199】[Noi2015]品酒大会 后缀自动机求后缀树+树形dp

    题目描述(转自百度文库) 一年一度的“幻影阁夏日品酒大会”隆重开幕了.大会包含品尝和趣味挑战两个环节,分别向优胜者颁发“首席品酒家”和“首席猎手”两个奖项,吸引了众多品酒师参加. 在大会的晚餐上,调酒 ...

  9. 如何通过IP地址分辨公网、私网、内网、外网

    如何通过IP地址分辨公网.私网.内网.外网   内.外网是相对于防火墙而言的,在防火墙内部叫做内网,反之就是外网.   在一定程度上外网等同于公网,内网等同于私网.   地址为如下3个区域就是处于私网 ...

  10. Linux服务器重启后nvidia-smi无法使用的解决方法

    服务器上的nvidia显卡驱动用的好好的,突然有一天,服务器断电了,然后恢复之后发现常用的nvidia-smi命令无法使用了,具体显示什么无法建立和驱动器的通信之类的,上网查了一堆,发现问题的核心:l ...