51nod 1836 战忽局的手段

来源:互联网 发布:软件测试风险评估 编辑:程序博客网 时间:2024/05/07 13:34

设 f(m) 表示m次演讲后忽悠的期望,那么很容易得出:

f(m)=f(m-1)+1*(n-f(m))/n

整理得到

f(m)-n=(n-1)/n*(f(m-1)-n)

公式有了,然后就是卡精度问题。。。。

__float128 有这么一个神奇的东西。。。。

#include<bits/stdc++.h>using namespace std;__float128 powf(__float128 x,long long p){__float128 ret=1.0;while(p){if(p&1)ret=ret*x;x=x*x;p>>=1;}return ret;}int main(){int T;__float128 ans;long long n,m;scanf("%d",&T);while(T--){scanf("%lld%lld",&n,&m);ans=n-n*powf((__float128)(n-1)/n,m);printf("%.7f\n",(double)ans);}}


0 0