ZOJ3415 Zhou Yu(期望推式子)

Posted issue是fw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ZOJ3415 Zhou Yu(期望推式子)相关的知识,希望对你有一定的参考价值。

传送门

定义 f [ i ] f[i] f[i] i i i i − 1 i-1 i1的期望

f [ n ] = 1 m ( 1 + f [ n ] ) + m − 1 m f[n]=\\frac1m(1+f[n])+\\fracm-1m f[n]=m1(1+f[n])+mm1

那么 f [ n ] = m m − 1 f[n]=\\fracmm-1 f[n]=m1m

f [ i ] = 1 m ∗ ( f [ i ] + f [ i + 1 ] ) + 1 f[i]=\\frac1m*(f[i]+f[i+1])+1 f[i]=m1(f[i]+f[i+1])+1

m − 1 m ∗ f [ i ] = 1 m ∗ f [ i + 1 ] + 1 \\fracm-1m*f[i]=\\frac1m*f[i+1]+1 mm1f[i]=m1f[i+1]+1

化简得到

f [ i ] = 1 m − 1 ∗ f [ i + 1 ] + m m − 1 f[i]=\\frac1m-1*f[i+1]+\\fracmm-1 f[i]=m11f[i+1]+m1m

这样可以在线性的时间开始递推,但是仍然不够优秀

我们再用迭代的方式进去

f [ i ] = m m − 1 + m ( m − 1 ) 2 + . . . m ( m − 1 ) n − i + 1 f[i]=\\fracmm-1+\\fracm(m-1)^2+...\\fracm(m-1)^n-i+1 f[i]=m1m+(m1)2m+...(m1)ni+1m

就是求这个东西 ∑ i = 1 n f [ i ] \\sum\\limits_i=1^nf[i] i=1nf[i]

那么定义 g [ i ] = m m − 1 + m ( m − 1 ) 2 + . . . m ( m − 1 ) i g[i]=\\fracmm-1+\\fracm(m-1)^2+...\\fracm(m-1)^i g[i]=m1m+(m1)2m+...(m1)im

那么有 ∑ i = 1 n g [ i ] = ∑ i = 1 n f [ i ] \\sum\\limits_i=1^ng[i]=\\sum\\limits_i=1^nf[i] i=1ng[i]=i=1nf[i]

q = 1 m − 1 g i = m q ( 1 − q i ) 1 − q ∑ i = 1 n g i = m q 1 − q ∗ ( ∑ i = 1 n 1 − ∑ i = 1 n q i ) = m q 1 − q ∗ ( n − q ∗ ( 1 − q n ) 1 − q ) q = \\frac1m - 1\\\\ g_i=\\fracmq(1-q^i)1-q\\\\ \\sum\\limits_i=1^ng_i=\\fracmq1-q*(\\sum\\limits_i=1^n1-\\sum\\limits_i=1^nq^i)\\\\ =\\fracmq1-q*(n-\\fracq*(1-q^n)1-q) q=m11gi=1qmq(1qi)i=1ngi=1qmq(i=1n1i=1nqi)=1qmq(n1qq(1qn))

于是开始在log的时间内求解

#include <bits/stdc++.h>
using namespace std;
int n,m;
double quick(double x,int n )

	double ans = 1;
	while( n )
	
		if( n&1 )	ans = ans*x;
		x = x*x; n>>=1;
	
	return ans;

int main()

	while( cin >> n >> m )
	
        if(m == 2)
        
            printf("%.10lf\\n", 1.0 * n * (n+1));
            continue;
        
		double q = 1.0/(m-1);
		double power = q*( quick(q,n)-1 )/(q-1 )-n;
		double ans = power * m * q / (q-1);
		printf("%.8lf\\n",ans);
	

以上是关于ZOJ3415 Zhou Yu(期望推式子)的主要内容,如果未能解决你的问题,请参考以下文章

ZOJ 3772 线段树

CF891E Lust(推式子,EGF)

Codeforces Round #763 (Div. 2) D(推式子+概率)

概率与期望DP习题总结

ZOJ3551Bloodsucker (数学期望)

*做题记录表