[Codeforces-div.1 167B] Wizards and Huge Prize

Posted wxjor

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Codeforces-div.1 167B] Wizards and Huge Prize相关的知识,希望对你有一定的参考价值。

[Codeforces-div.1 167B] Wizards and Huge Prize

技术分享图片

试题分析

注意到每个物品互相独立,互不干扰之后就非常好做了。
算出一个物品最后的价值期望,然后乘以K即可。

#include<iostream>
#include<cstring>
#include<cstdio>
#include<vector>
#include<algorithm>
 
using namespace std;
#define LL long long
 
inline int read(){
    int x=0,f=1; char c=getchar();
    for(;!isdigit(c);c=getchar()) if(c=='-') f=-1;
    for(;isdigit(c);c=getchar()) x=x*10+c-'0';
    return x*f;
}
const int INF = 2147483600;
const int MAXN = 100010;
 
int N,K; double f[2][MAXN+1];
 
int main(){
    //freopen(".in","r",stdin);
    //freopen(".out","w",stdout);
    N=read(),K=read();
    //for(int j=1;j<=N+1;j++) f[N&1][j]=0;
    for(int i=N-1;i>=0;i--){
        int x=(i&1),y=(x^1);
        //for(int j=1;j<=N;j++) f[x][j]=0;
        for(int j=1;j<800;j++)
            f[x][j]=(f[y][j+1]+j)/(1.0*K*(j+1))+
                    1.0*j*(f[y][j]+(1.0*(j+1)/2.0))/(1.0*K*(j+1))+
                    (1.0-(1.0/(1.0*K)))*f[y][j];
    } //cout<<f[0][1]<<endl;
    printf("%.9lf",1.0*K*f[0][1]);
    return 0;
}

以上是关于[Codeforces-div.1 167B] Wizards and Huge Prize的主要内容,如果未能解决你的问题,请参考以下文章

[Codeforces-div.1 494C] Helping People

正则表达式[w]+,w+,[w+]

语言模型

w和r在一起w不发音

算法搜索练习

正则表达式的区别: (\w+)?和 (\w*)