Scout YYF I POJ - 3744
YYF is a couragous scout. Now he is on a dangerous mission which is to penetrate into the enemy’s base. After overcoming a series difficulties, YYF is now at the start of enemy’s famous “mine road”. This is a very long road, on which there are numbers of mines. At first, YYF is at step one. For each step after that, YYF will walk one step with a probability of p, or jump two step with a probality of 1- p. Here is the task, given the place of each mine, please calculate the probality that YYF can go through the “mine road” safely.
Input
The input contains many test cases ended with EOF.
Each test case contains two lines.
The First line of each test case is N (1 ≤ N ≤ 10) and p (0.25 ≤ p ≤ 0.75) seperated by a single blank, standing for the number of mines and the probability to walk one step.
The Second line of each test case is N integer standing for the place of N mines. Each integer is in the range of [1, 100000000].
Output
For each test case, output the probabilty in a single line with the precision to 7 digits after the decimal point.
Sample Input
1 0.5
2
2 0.5
2 4
Sample Output
0.5000000
0.2500000
有n个炸弹在不同的位置,你在1点,往前跳一格的概率是p,跳两格的概率是1-p,你能跳出这些炸弹的概率是多少,
#include<iostream>
#include<cstdio>
#include<iomanip>
#include<cstring>
#include<algorithm>
using namespace std;
class node
{
public:
double mar[3][3];
node()
{
memset(mar,0,sizeof(mar));
}
};
long long a[120];
node mul(node a,node b)
{
node c;
for(long long i = 0; i<2; i++)
{
for(long long j = 0; j<2; j++)
{
for(long long k = 0; k<2; k++)
{
c.mar[i][j] += a.mar[i][k]*b.mar[k][j];
}
}
}
return c;
}
node qui_mul(node a,long long num)
{
node ans;
ans.mar[0][0] = ans.mar[1][1] = 1;
while(num)
{
if(num&1)
{
ans = mul(ans,a);
}
num>>=1;
a = mul(a,a);
}
return ans;
}
int main()
{
ios::sync_with_stdio(false);
long long i,j,m,n,now;
double p;
while(scanf("%lld %lf",&n,&p)!=EOF)
{
node aa,ans,bb;
for(i = 0; i<n; i++)
{
cin>>a[i];
}
sort(a,a+n);
aa.mar[0][0] = p;
aa.mar[0][1] = 1-p;
aa.mar[1][0] = 1;
ans.mar[0][0] =1;
now = 1;
for(i = 0; i<n; i++)
{
long long num = a[i]-now;
bb = qui_mul(aa,num);
ans = mul(bb,ans);
ans.mar[0][0] = 0;
now = a[i];
}
cout<<fixed<<setprecision(7)<<ans.mar[1][0]*(1-p)<<endl;
}
return 0;
}
oracle高版本exp导出的文件不能直接imp导入到低版本,需要用数据泵导出,再导入到低版本库。低版本数据库可以直接向高版本导入。导出语句:expdp userid=name/[email protected] directory=DATA_PUMP_DIR dumpfile=test.dmp job_name=test logfile=test.log parallel=2 schemas=nam...
微信Android诞生之初,用的是常见的分层结构设计。这种架构简单、清晰并一直沿袭至今。这是微信架构的v1.x时代。图1-架构演进到了微信架构的v2.x时代,随着业务的快速发展,消息通知不及时和Android 2.3版本之前webview内存泄露问题开始突显。由于代码、内存、apk大小都在增长,对系统资源的占用越来越多,导致微信进程容易被系统回收。因此微信开始转向多进程架构,独立的通信进程保持长连
职位搜索社招职位搜索入口:https://job.alibaba.com/zhaopin/positionList.htm校招职位搜索入口:https://campus.alibaba.com/positionList.htm流程和建议请您完成上述职位搜索,并记下职位全称,按顺序邮件给我。建议职位最多选择2个,按顺序邮件给我,一次内推只能选择一个职位,前一次内推结果失败之后...
L1-044 稳赢 (15 分)大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:现要求你编写一个稳赢不输的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方输得太惨,你需要每隔K次就让一个平局。输入格式:输入首先在第一行给出正整数K(≤10),即平局间隔的次数。随后每行给出对方的一次出招:ChuiZi代表“锤子”、JianDao代表“剪刀”、Bu代表“布”。...
核心配置文件mybatis-config.xml 系统核心配置文件MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。能配置的内容如下configuration(配置)properties(属性)settings(设置)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)environments(环境配置) environment(环境变量)
原标题:内核早期内存分配器:memblock本文转载自Linux爱好者本文来自 程雪涛的自荐投稿Linux内核使用伙伴系统管理内存,那么在伙伴系统工作前,如何管理内存?答案是memblock。memblock在系统启动阶段进行简单的内存管理,记录物理内存的使用情况。在进一步介绍memblock之前,有必要先了解下系统内存的使用情况:首先,内存中的某些部分是永久的分配给内核的,比如内核代码段和数据段...
对于UCOSII部分知识的区别和补充操作系统初始化UCOSIII的任务栈大小UCOSIII优先级轮转调度算法时钟节拍中断服务程序共享资源的使用代码临界区信号量UCOSIII任务函数通常是一个无限循环,当然了,也可以是一个只执行一次的任务。任务的参数是一个void类型的,这么做的目的是可以可以传递不同类型的数据甚至是函数。UCOSIII中的任务函数模板:void xxx_task(void *p_arg){ while(1) { //任务处理过程 }}在使用UCOIII的情况下这个
1.关于WinINetWinINet不是给服务端用的,服务端用Microsoft Windows HTTP Services (WinHTTP)WinINet抽象了Gopher,FTP,HTTP协议的一些细节。2.HINTERNET 句柄WinINet
FileZilla使用测评图-FileZilla起到FTP工具,我想大部分朋友都会想到FlashFXP和cuteftp等这些老牌的FTP工具,而今天向大家介绍的FileZilla也许大家很陌生,因为他是后起之秀嘛。FileZilla的优点:开源-即源代码公开,想学编程的朋友或想定制的朋友可以自己通过源文件进行编译。免费-因为开源,所以免费,免费的东西大家都喜欢。跨平台-也许你只听到过Windows...
合并果子 描述 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。 每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。 因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节...
shift up插入一个元素时,把元素追加到列表的最后,也就是堆的叶子节点上。然后执行shifup操作,对新元素进行从下往上的调整。判断当前元素是否比父节点更大,如果是,则交换。否则就终止。因为插入一个元素时,列表已经是一个大根堆,所以当出现父元素大于自己时,就没有必要继续,因为父元素的父元素值更大。shift down删除一个元素时,把该元素和列表的最后一个元素交换。然后列表的长度减一(如果用count计数的话)。剩余的元素进行shiftdown操作。shiftdown,如果两个孩