hdu4870 高斯消元
题意 一个人打比赛 ,rating 有p的概率 为加50分 有1-p的概率为 x-100分 最大值为 1000 最小值为0
有两个号 每次拿较小的号来提交 , 计算最后到达 1000分得期望场数是多少,
对每个状态建立一个方程然后用高斯消元解决
- #include <iostream>
- #include <algorithm>
- #include <string.h>
- #include <cstdio>
- #include <cmath>
- using namespace std;
- const int maxn=;
- const double eps=0.000000001;
- int sgn(double f){
- if(fabs(f)<eps)return ;
- return f>?:-;
- }
- int id[maxn][maxn],cnt;
- int equ,var;//方程数和未知数个数
- double P;
- double a[][],x[];
- void perId()
- {
- cnt=;
- for(int i=; i<; i++)
- for(int j=; j<=i; j++)
- id[i][j]=cnt++;
- id[][]=cnt++;
- equ=var=cnt;
- }
- void init()
- {
- memset(a,,sizeof(a));
- for(int i=; i<; i++)
- for(int j=; j<=i ;j ++)
- {
- int u=id[i][j];
- x[ u ]=a[ u ][ u ] = 1.0;
- int nx,ny;
- nx=max( i , j+ ),ny=min( i , j+ );
- a[ u ][ id[nx][ny] ]-=P;
- nx=i; ny=max(j-,);
- a[ u ][ id[nx][ny] ]-=(-P);
- }
- x[cnt-]=0.0;
- a[cnt-][cnt-]=1.0;
- }
- int Gauss()
- {
- int i,j,k,col,max_r;
- for(k=,col=;k<equ&&col<var;k++,col++)
- {
- max_r=k;
- for(i=k+;i<equ;i++)
- if(fabs(a[i][col])>fabs(a[max_r][col]))
- max_r=i;
- if(k!=max_r)
- {
- for(j=col;j<var;j++)
- swap(a[k][j],a[max_r][j]);
- swap(x[k],x[max_r]);
- }
- x[k]/=a[k][col];
- for(j=col+;j<var;j++)a[k][j]/=a[k][col];
- a[k][col]=;
- for(i=;i<equ;i++)
- if(i!=k)
- {
- x[i]-=x[k]*a[i][col];
- for(j=col+;j<var;j++)a[i][j]-=a[k][j]*a[i][col];
- a[i][col]=;
- }
- }
- return ;
- }
- int main()
- {
- perId();
- while(scanf("%lf",&P)==)
- {
- init();
- Gauss();
- printf("%.6lf\n",x[]);
- }
- return ;
- }
hdu4870 高斯消元的更多相关文章
- hdu4870 Rating (高斯消元或者dp)
Rating Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- 【BZOJ-3143】游走 高斯消元 + 概率期望
3143: [Hnoi2013]游走 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2264 Solved: 987[Submit][Status] ...
- 【BZOJ-3270】博物馆 高斯消元 + 概率期望
3270: 博物馆 Time Limit: 30 Sec Memory Limit: 128 MBSubmit: 292 Solved: 158[Submit][Status][Discuss] ...
- *POJ 1222 高斯消元
EXTENDED LIGHTS OUT Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 9612 Accepted: 62 ...
- [bzoj1013][JSOI2008][球形空间产生器sphere] (高斯消元)
Description 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困在了这个n维球体中,你只知道球 面上n+1个点的坐标,你需要以最快的速度确定这个n维球体的球心坐标,以便于摧 ...
- hihoCoder 1196 高斯消元·二
Description 一个黑白网格,点一次会改变这个以及与其连通的其他方格的颜色,求最少点击次数使得所有全部变成黑色. Sol 高斯消元解异或方程组. 先建立一个方程组. \(x_i\) 表示这个点 ...
- BZOJ 2844 albus就是要第一个出场 ——高斯消元 线性基
[题目分析] 高斯消元求线性基. 题目本身不难,但是两种维护线性基的方法引起了我的思考. void gauss(){ k=n; F(i,1,n){ F(j,i+1,n) if (a[j]>a[i ...
- SPOJ HIGH Highways ——Matrix-Tree定理 高斯消元
[题目分析] Matrix-Tree定理+高斯消元 求矩阵行列式的值,就可以得到生成树的个数. 至于证明,可以去看Vflea King(炸树狂魔)的博客 [代码] #include <cmath ...
- 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 ...
随机推荐
- BOM简单总结
先来说一下BOM,什么是BOM?BOM就是浏览器对象模型,大家都知道,ECMAScript是JavaScript的核心,但如果要在WEB中使用JavaScript,那么BOM则无疑才是真正的核心,BO ...
- qemu-kvm内存虚拟化1
2017-04-18 记得很早之前分析过KVM内部内存虚拟化的原理,仅仅知道KVM管理一个个slot并以此为基础转换GPA到HVA,却忽略了qemu端最初内存的申请,而今有时间借助于qemu源码分析下 ...
- oracle中实现当前月减少或增加N个月
add_months(last_day(trunc(sysdate)),N)N可以为正,表示增加:N可以为负,表示减少.
- spring学习(02)之配置文件没有提示问题
配置文件没有提示问题 1 spring引入schema约束,把约束文件引入到eclipse中 (1)复制约束路径 http://www.springframework.org/schema/beans ...
- Docker 容器(六)
镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体.容器可以被创建.启动.停止.删除.暂停等. 容器的实质是 ...
- (3.16)mysql基础深入——mysql字符集
(3.16)mysql基础深入——mysql字符集 关键字:mysql字符集,mysql编码 目录 1.概念 2.常用的字符编码 3.查看mysql字符集 [3.1]查看服务器支持的字符集 [3.2] ...
- VueI18n的应用
.npm install vue-i18n .在 main.js 中引入 vue-i18n import VueI18n from 'vue-i18n' Vue.use(VueI18n) .在main ...
- Scala集合(一)
Scala集合的主要特质 Iterator,用来访问集合中所有元素 val coll = ... // 某种Iterable val iter = col.iterator while(iter.ha ...
- HBase 数据迁移方案介绍 (转载)
原文地址:https://www.cnblogs.com/ballwql/p/hbase_data_transfer.html 一.前言 HBase数据迁移是很常见的操作,目前业界主要的迁移方式主要分 ...
- 263A
#include<stdio.h> #include<stdlib.h> int main() { int i, j; int temp; int t_i, t_j; int ...