Scout YYF I
来源:互联网 发布:分布式数据分析 编辑:程序博客网 时间:2024/06/01 19:50
题目大意
给定
N(1≤N≤10) 个地雷的位置,给定一个概率p(p∈[0.25,0.75]) 。规定有p 的概率向前走一步、(1−p) 的概率向前走两步。求从1 开始走安全走完雷区的概率。
这道题是在一次培训时讲的例题。当时是作为概率动归讲的。但我看到
关键是下边这段:
double f = 1;for (int i = 1;i <= N;i ++) { int k = a[i] - a[i - 1] - 1; f *= (1 - quickpow(p - 1, k)) / (2 - p) * (1 - p); }
将雷区分为许多段,每段为两个雷之间无雷的区域。之后便能递推得出结果。
众所周知,等比数列求和为
那个
#include<cstdlib>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>using namespace std;int a[12];double quickpow(double p, int k){ double ans = 1; while (k) { if (k & 1) ans *= p; p *= p; k >>= 1; } return ans;}int main(){ int N; double p; while (scanf("%d%lf", &N, &p) != EOF) { memset(a, 0, sizeof a); double f = 1; for (int i = 1;i <= N;i ++) scanf("%d", &a[i]); sort(a + 1, a + N + 1); for (int i = 1;i <= N;i ++) { int k = a[i] - a[i - 1] - 1; f *= (1 - quickpow(p - 1, k)) / (2 - p) * (1 - p); } printf("%.7lf\n", f); }}
阅读全文
0 0
- poj3744 Scout YYF I
- poj3744 Scout YYF I
- poj-Scout YYF I
- POJ3744----Scout YYF I
- 【POJ3744】【Scout YYF I】
- 【POJ3744】Scout YYF I
- Scout YYF I
- Scout YYF I POJ
- Scout YYF I POJ
- poj 3744 Scout YYF I
- poj 3744 Scout YYF I
- poj 3744 Scout YYF I
- POJ 3744 Scout YYF I
- POJ 3744 Scout YYF I
- poj3744 Scout YYF I 概率
- POJ 3744 Scout YYF I
- POJ 3744 Scout YYF I
- POJ 3744 Scout YYF I
- 《并发编程》--4.线程等待(wait)和线程通知(notity)
- 全排列及相关扩展算法(五)——递增(递减)进位制数求原排列算法
- 第二篇:线程中断(含代码)
- 关于页面显示当前登录的用户
- &运算
- Scout YYF I
- 从装系统开始到搭好java开发框架
- showModalDialog
- 深入理解动态库
- Android实现dialog的3D翻转
- 技术文章 | 2017程序员该为自己制定的12个小目标
- oc中的#pragma mark于swift无效,使用//MARK:XX
- 前端学习(十)封装
- POJ-2533 Longest Ordered Subsequence