ASDFZ 3629 -- 药品试验

 

题目背景

小 X 是生活在 9102 年的一位高二的 OIer,也是本套模拟题的主角。
小 X 的妹子小 R 在 9102 年高考前两周跟一位高考考生小 Y 跑了,这令小 X 十分不爽。小 X 在睡觉的时候梦到自己也进入了高考考场参加了数学考试,并且通过一道题把小 Y 吊打了。
小 X 醒来后,尽管没有真实发生,但是他对这道题印象深刻,认为这道题是一个 OIer 都能轻松做出来的题,怀着对小 Y 的怨念,他把这题出给了你。

题目描述

为治疗某种疾病,研制了甲、乙两种新药,希望知道哪种新药更有效,为此进行动物试验。
试验方案如下:每一轮选取两只白鼠对药效进行对比试验。对于两只白鼠,随机选一只施以甲药,另一只施以乙药。一轮的治疗结果得出后,再安排下一轮试验。当其中一种药治愈的白鼠比另一种药治愈的白鼠多 n 只时。就停止试验,并认为治愈只数多的药更有效。
为了方便描述问题,约定:对于每轮试验,若施以甲药的白鼠治愈且施以乙药的白鼠未治愈则甲药得 1 分,乙药得 −1 分;若施以乙药的白鼠治愈且施以甲药的白鼠未治愈则乙药得 1 分,甲药得 −1 分;若都治愈或都未治愈则两种药均得 0 分。
甲、乙两种药的治愈率分别记为 α 和 β,一轮实验中甲药的得分记为 X。
若甲药、乙药在试验开始时都赋予 n 分,pi(i=0,1,…,2n)表示 “甲药的累计得分为 i 时,最终认为甲药比乙药更有效” 的概率。则 p0=0,p2n=1,pi=api−1+bpi+cpi+1(i=1,2,…,2n−1,其中 a=P(X=−1),b=P(X=0),c=P(X=1)。
求出 pn 的值,即最终认为甲药比乙药更有效的概率,答案对 1000000007(10^9 + 7一个质数 ) 取模。
如果你对题目有疑问,可以参见提示部分。

Input

从标准输入读入数据。
输入一行三个正整数,分别为题目中所说的 n,α,β在取模意义下给出。

Output

输出到标准输出。
输出一行一个整数,表示 pnmod  10^9 + 7。

Sample Input

#1
2 500000004 600000005

#2
364 401527355 102420240

Sample Output

#1
352941179

#2
901352382

Sample Explanation

#1
α≡0.5(mod109+7),β≡0.8(mod109+7,则有 a=0.4,b=0.5,c=0.1。
可以求得 p0=0,p1=1/85,p2=1/17,p3=21/85,p4=1。
ASDFZ 3629 -- 药品试验_第1张图片

Source

2019NOIP前训练

思路

求a,b,c,求p0,p1,递推求pn
求x  完事儿~~
ASDFZ 3629 -- 药品试验_第2张图片
这个原理对概率同样适用
两个事件同时发生概率即是分别发生的概率乘积
比如甲有用,乙有用两件事同时发生


你把右边的pn移到左边
就是递推公式

甲有用乙没用就是α(1-β)
甲没用乙有用就是β(1-c)
β=1-α-c

代码

#include
#include
#include
#include
#include
using namespace std;

const int N=20000010;
const int Mod=1000000007;

int p[N];
long long n,A,B,a,b,c,cn;

long long qmod(long long a,long long b) {
	long long ans=1;
	while(b) {
		if(b&1)
			ans=ans*a%Mod;
		a=a*a%Mod;
		b/=2;
	}
	return ans;
}

int main () {
	scanf("%lld%lld%lld",&n,&A,&B);
	a=(Mod+1-A)*B%Mod;
	b=(2*A*B%Mod+2*Mod+1-A-B)%Mod;
	c=(Mod+1-B)*A%Mod;
	cn=qmod(c,Mod-2);
	p[1]=1;
	p[2]=(Mod+1-b)%Mod*cn%Mod;
	for(int i=3; i<=n*2; i++)
		p[i]=((Mod+1-b)*p[i-1]%Mod+Mod-a*p[i-2]%Mod)%Mod*cn%Mod;
	long long s=qmod(p[n*2],Mod-2);
	printf("%lld\n",s*p[n]%Mod);
	return 0;
}

 

转载于:https://www.cnblogs.com/mysh/p/11456568.html

你可能感兴趣的:(ASDFZ 3629 -- 药品试验)