http://poj.org/problem?id=3744

题意:直线上n个地雷,n<=10,范围在[1, 100000000],每一次有p的概率向前走一步,1-p的概率向前走两步,问安全通过所有地雷的概率(即走到最后一个地雷的后一格)

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std; typedef double mtx[2][2];
void mul(mtx &a, mtx &b, mtx &c) {
static mtx t;
for(int i=0; i<2; ++i) for(int j=0; j<2; ++j) {
t[i][j]=0;
for(int k=0; k<2; ++k) t[i][j]=t[i][j]+a[i][k]*b[k][j];
}
memcpy(c, t, sizeof t);
}
double P;
bool flag;
void mpow(mtx &t, int n) {
if(n<0) { memset(t, 0, sizeof t); flag=1; return; }
if(flag) return;
static mtx a, x;
a[0][0]=P; a[0][1]=1;
a[1][0]=1-P; a[1][1]=0;
memset(x, 0, sizeof x);
x[0][0]=1; x[1][1]=1;
while(n) {
if(n&1) mul(x, a, x);
mul(a, a, a);
n>>=1;
}
mul(t, x, t);
}
mtx a, b;
int x[15], n;
int main() {
memset(b, 0, sizeof b);
while(~scanf("%d%lf", &n, &P)) {
for(int i=1; i<=n; ++i) scanf("%d", &x[i]);
sort(x+1, x+1+n);
b[0][0]=1-P;
flag=0;
memset(a, 0, sizeof a);
a[0][0]=1;
for(int i=1; i<=n; ++i) mpow(a, x[i]-x[i-1]-2), mul(a, b, a);
a[0][0]=(a[0][0]<0?-a[0][0]:a[0][0]);
printf("%.7f\n", a[0][0]);
}
return 0;
}

  

对于每一步状态$d[i]$,发现是由$d[i-1]$和$d[i-2]$转移得到的,那么由于事件$i-1$和事件$i-2$互斥,且根据概率的线性性质,得到:

$d[i]=p*d[i-1]+(1-p)*d[i-2]$

可是有地雷怎么办?分段= =然后讨论之= =

发现范围很大怎么办?转移一样上矩阵= =

反正最后得到矩阵积是这个样子的:

$$
\begin{bmatrix}
1 & 0 \\
\end{bmatrix}
\prod_{i=1}^{n}
\left(
\begin{bmatrix}
p & 1 \\
1-p & 0
\end{bmatrix}^{x_i-x_{i-1}-2}
\begin{bmatrix}
1-p & 0 \\
0 & 0
\end{bmatrix} \right)
$$

然后就行了= =

注意$x$数组不是有序的= =需要排一次序.....要不然就wa了一发QAQ还有poj的bits/stdc++不能用是什么鬼 = =

【POJ】3744 Scout YYF I的更多相关文章

  1. POJ 3744 Scout YYF I 概率dp+矩阵快速幂

    题目链接: http://poj.org/problem?id=3744 Scout YYF I Time Limit: 1000MSMemory Limit: 65536K 问题描述 YYF is ...

  2. poj 3744 Scout YYF I(递推求期望)

    poj 3744 Scout YYF I(递推求期望) 题链 题意:给出n个坑,一个人可能以p的概率一步一步地走,或者以1-p的概率跳过前面一步,问这个人安全通过的概率 解法: 递推式: 对于每个坑, ...

  3. 【POJ】1704 Georgia and Bob(Staircase Nim)

    Description Georgia and Bob decide to play a self-invented game. They draw a row of grids on paper, ...

  4. 【POJ】1067 取石子游戏(博弈论)

    Description 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的石子.最后 ...

  5. POJ 3744 Scout YYF I

    分段的概率DP+矩阵快速幂                        Scout YYF I Time Limit: 1000MS   Memory Limit: 65536K Total Sub ...

  6. poj 3744 Scout YYF I(概率dp,矩阵优化)

    Scout YYF I Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5020   Accepted: 1355 Descr ...

  7. poj 3744 Scout YYF 1 (概率DP+矩阵快速幂)

    F - Scout YYF I Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Sub ...

  8. 【BZOJ】【1986】【USACO 2004 Dec】/【POJ】【2373】划区灌溉

    DP/单调队列优化 首先不考虑奶牛的喜欢区间,dp方程当然是比较显然的:$ f[i]=min(f[k])+1,i-2*b \leq k \leq i-2*a $  当然这里的$i$和$k$都是偶数啦~ ...

  9. 【POJ】【2104】区间第K大

    可持久化线段树 可持久化线段树是一种神奇的数据结构,它跟我们原来常用的线段树不同,它每次更新是不更改原来数据的,而是新开节点,维护它的历史版本,实现“可持久化”.(当然视情况也会有需要修改的时候) 可 ...

随机推荐

  1. Delphi面向对象编程

    一.面向对象介绍 OOP是使用独立的对象(包含数据和代码)作为应用程序模块的范例.虽然OOP不能使得代码容易编写,但是它能够使得代码易于维护.将数据和代码结合在一起,能够使定位和修复错误的工作简单化, ...

  2. Jquery自定义图片上传插件

    1 概述 编写后台网站程序大多数用到文件上传,可是传统的文件上传控件不是外观不够优雅,就是性能不太好看,翻阅众多文件上传控件的文章,发现可以这样去定义一个文件上传控件,实现的文件上传的效果图如下: 2 ...

  3. 基于python网络编程实现支持购物、转账、存取钱、定时计算利息的信用卡系统

    一.要求 二.思路 1.购物类buy 接收 信用卡类 的信用卡可用可用余额, 返回消费金额 2.信用卡(ATM)类 接收上次操作后,信用卡可用余额,总欠款,剩余欠款,存款 其中: 1.每种交易类型不单 ...

  4. Centos6.5里安装Hbase(伪分布式)

    首先我们到官方网站下载Hbase,而我使用的版本是hbase-0.94.27.tar.gz 解压下来: tar zxvf hbase-.tar.gz 寻找java安装路径 [root@localhos ...

  5. ZLL本地局域网通信过程

    Interface_srpcserver -----以灯的状态操作位例 网关与客户端通过Socket API通信,Socket API在socket_server.c中实现,socket_server ...

  6. Eclipse查看JDK源码

    设置 点 "window"-> "Preferences" -> "Java" -> "Installed JR ...

  7. 启动Tomcat服务器报错: Several ports (8005, 8080, 8009) required

    错误记录--更改tomcat端口号方法,Several ports (8005, 8080, 8009) http://blog.csdn.net/xinxin19881112/article/det ...

  8. 用DOM4J解析XML文件案例

    用DOM4J解析XML文件案例,由于DOM4J不像JAXP属于JAVASE里,所以如果要使用DOM4J,则必须额外引入jar包,如图:

  9. vmstat的使用(查看系统各种负载)

    $ vmstatprocs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd f ...

  10. 【转】使用Apache Kylin搭建企业级开源大数据分析平台

    http://www.thebigdata.cn/JieJueFangAn/30143.html 本篇文章整理自史少锋4月23日在『1024大数据技术峰会』上的分享实录:使用Apache Kylin搭 ...