LightOJ - 1151概率dp+高斯消元
概率dp+高斯消元
https://vjudge.net/problem/LightOJ-1151
题意:刚开始在1,要走到100,每次走的距离1-6,超过100重来,有一些点可能有传送点,可以传送到前面或后面,那么概率dp没法递推,只能高斯消元
设期望E(x),首先100这个位置的期望E(100)=0,然后可以找出方程, 对于传送点,E(x)=E(go(x)),对于非传送点,E(x)=(E(x+1)+E(x+2)+E(x+3)+E(x+4)+E(x+5)+E(x+6)+6)/cnt(cnt是可转移的点数)
对于大于100的E肯定是0,不用考虑进来,然后高斯消元就得到了结果
- //#pragma comment(linker, "/stack:200000000")
- //#pragma GCC optimize("Ofast,no-stack-protector")
- //#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
- //#pragma GCC optimize("unroll-loops")
- #include<bits/stdc++.h>
- #define fi first
- #define se second
- #define mp make_pair
- #define pb push_back
- #define pi acos(-1.0)
- #define ll long long
- #define vi vector<int>
- #define mod 1000000007
- #define C 0.5772156649
- #define ls l,m,rt<<1
- #define rs m+1,r,rt<<1|1
- #define pil pair<int,ll>
- #define pli pair<ll,int>
- #define pii pair<int,int>
- #define cd complex<double>
- #define ull unsigned long long
- #define base 1000000000000000000
- #define fio ios::sync_with_stdio(false);cin.tie(0)
- using namespace std;
- const double g=10.0,eps=1e-;
- const int N=+,maxn=+,inf=0x3f3f3f3f,INF=0x3f3f3f3f3f3f3f3f;
- double a[N][N],ans[N];
- void gauss(int n)
- {
- for(int i=;i<n;i++)
- {
- if(a[i][i]==)
- {
- int id=;
- for(int j=i+;j<=n;j++)
- if(a[j][i]!=)
- id=j;
- for(int j=i;j<=n+;j++)
- swap(a[i][j],a[id][j]);
- }
- for(int j=i+;j<=n;j++)
- {
- double t=a[j][i]/a[i][i];
- for(int k=i;k<=n+;k++)
- a[j][k]-=(a[i][k]*t);
- }
- }
- // for(int i=1;i<=n;i++)
- // {
- // for(int j=1;j<=n+1;j++)
- // printf("%.12f ",a[i][j]);
- // puts("");
- // }
- for(int i=n;i>=;i--)
- {
- for(int j=i+;j<=n;j++)
- a[i][n+]-=ans[j]*a[i][j];
- ans[i]=a[i][n+]/a[i][i];
- }
- }
- int go[N];
- int main()
- {
- int T,cnt=;scanf("%d",&T);
- while(T--)
- {
- int n;scanf("%d",&n);
- memset(go,,sizeof go);
- for(int i=;i<n;i++)
- {
- int a,b;
- scanf("%d%d",&a,&b);
- go[a]=b;
- }
- // puts("++");
- memset(a,,sizeof a);
- for(int i=;i<=;i++)
- {
- if(go[i])
- {
- a[i][i]=;
- a[i][go[i]]=-;
- }
- else
- {
- a[i][i]=6.0;
- for(int j=i+;j<=i+;j++)a[i][j]=-1.0;
- a[i][]=;
- }
- }
- for(int i=;i<=;i++)
- {
- if(go[i])
- {
- a[i][i]=;
- a[i][go[i]]=-;
- }
- else
- {
- a[i][i]=1.0*(-i);
- for(int j=i+;j<=;j++)a[i][j]=-1.0;
- a[i][]=;
- }
- }
- a[][]=1.0;
- gauss();
- printf("Case %d: %.12f\n",++cnt,ans[]);
- }
- return ;
- }
- /***********************
- ***********************/
LightOJ - 1151概率dp+高斯消元的更多相关文章
- Snakes and Ladders LightOJ - 1151( 概率dp+高斯消元)
Snakes and Ladders LightOJ - 1151 题意: 有100个格子,从1开始走,每次抛骰子走1~6,若抛出的点数导致走出了100以外,则重新抛一次.有n个格子会单向传送到其他格 ...
- BZOJ_1778_[Usaco2010 Hol]Dotp 驱逐猪猡_概率DP+高斯消元
BZOJ_1778_[Usaco2010 Hol]Dotp 驱逐猪猡_概率DP+高斯消元 题意: 奶牛们建立了一个随机化的臭气炸弹来驱逐猪猡.猪猡的文明包含1到N (2 <= N <= 3 ...
- 【bzoj1778】[Usaco2010 Hol]Dotp 驱逐猪猡 矩阵乘法+概率dp+高斯消元
题目描述 奶牛们建立了一个随机化的臭气炸弹来驱逐猪猡.猪猡的文明包含1到N (2 <= N <= 300)一共N个猪城.这些城市由M (1 <= M <= 44,850)条由两 ...
- BZOJ3270 博物館 概率DP 高斯消元
BZOJ3270 博物館 概率DP 高斯消元 @(XSY)[概率DP, 高斯消元] Description 有一天Petya和他的朋友Vasya在进行他们众多旅行中的一次旅行,他们决定去参观一座城堡博 ...
- BZOJ 3270: 博物馆 [概率DP 高斯消元]
http://www.lydsy.com/JudgeOnline/problem.php?id=3270 题意:一张无向图,一开始两人分别在$x$和$y$,每一分钟在点$i$不走的概率为$p[i]$, ...
- 【BZOJ3640】JC的小苹果 概率DP+高斯消元
[BZOJ3640]JC的小苹果 Description 让我们继续JC和DZY的故事. “你是我的小丫小苹果,怎么爱你都不嫌多!” “点亮我生命的火,火火火火火!” 话说JC历经艰辛来到了城市B,但 ...
- LightOJ 1151 Snakes and Ladders(概率DP + 高斯消元)
题意:1~100的格子,有n个传送阵,一个把进入i的人瞬间传送到tp[i](可能传送到前面,也可能是后面),已知传送阵终点不会有另一个传送阵,1和100都不会有传送阵.每次走都需要掷一次骰子(1~6且 ...
- LightOJ - 1151 Snakes and Ladders(概率dp+高斯消元)
有100个格子,从1开始走,每次抛骰子走1~6,若抛出的点数导致走出了100以外,则重新抛一次.有n个格子会单向传送到其他格子,G[i]表示从i传送到G[i].1和100不会有传送,一个格子也不会有两 ...
- 【概率DP/高斯消元】BZOJ 2337:[HNOI2011]XOR和路径
2337: [HNOI2011]XOR和路径 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 682 Solved: 384[Submit][Stat ...
随机推荐
- kettle中的karaf设置
Spoon.sh设置-Dpentaho.karaf.root.copy.dest.folder=$PENTAHO_KARAF_ROOT -Dpentaho.karaf.root.transient=f ...
- Android 常用adb shell 命令
原文地址http://blog.csdn.net/rain_butterfly/article/details/40894807 调试Android程序有时需要adb shell 命令,adb全称An ...
- php 单线程 (http://bbs.csdn.net/topics/390778072)
以前想php单线程,网站肯定是用于多人访问的,如果访问量大,那岂不是出现排队问题? apache+php是阻塞型处理,nginx+php是异步非阻塞的,php有进程管理器,fpm fcgi什么的.ph ...
- 后缀自动机模板 SAM
一点疑问: 当创建nq节点时,要不要把nq的cnt标记赋值为1? 讲道理nq节点也是代表一个子串啊,不过网上的模板都没赋值. 2017.9.18 update: 把memset部分重写,改成用节点用到 ...
- Linux centos7安装Mongodb
Linux centos7安装Mongodb-4.0 1.下载 官方下载地址:https://www.mongodb.com/download-center/community 2.上传解压 1)rz ...
- python3_ftp多线程上传图片
项目中研发人员自己写了ftp服务,没有标准ftp中的列表,准备用jmeter对ftp压力测试时发现jmeter要验证列表(如果有同学用jmeter测试过类似的分享一下方法谢谢了),没办法只能用pyth ...
- [原创]css中a标签去掉锚点文本下划线
我对博客的认识是:记录问题,解决问题,分享知识.如果有轮子,我不需要造轮子. 1.问题解决方式: 设置属性:text-decoration:none; 2.更多属性参数参考 text-decorati ...
- Codeforces 235C. Cyclical Quest
传送门 写的时候挺蛋疼的. 刚开始的时候思路没跑偏,无非就是建个SAM然后把串开两倍然后在SAM上跑完后统计贡献.但是卡在第二个样例上就是没考虑相同的情况. 然后开始乱搞,发现会出现相同串的只有可能是 ...
- 20145216史婧瑶《Java程序设计》第3周学习总结
20145216 <Java程序设计>第3周学习总结 教材学习内容总结 第四章 认识对象 4.1 类与对象 •对象(Object):存在的具体实体,具有明确的状态和行为 •类(Class) ...
- 20145329 《Java程序设计》第七周学习总结
教材学习内容总结 +JDK出现之前就已经存在的java.util.Date与java.util.Calendar等API +如果想取得系统时间,方法之一是使用System.currentTimeMil ...