zoukankan      html  css  js  c++  java
  • Millionaire

    1,日常看懂题不知道咋做。

    2,日了这东西学不下去了

    这简直太难了,我看不出来啊。。除非背代码。。

    memset(prv,0,sizeof(double)*(n+1));

    而且这个地方不知道为什么总是不行。

    因为你要用的是

    #include<string.h>

    3,搞得才把第一遍弄出来

    #include<iostream>
    #include<algorithm>
    #include<string.h>
    typedef long long ll;
    using namespace std;
    int M,X;
    double P;
    double dp[2][1000005];
    int main(){
        cin>>M>>P>>X;
        int n=1<<M;
        
        double *prv=dp[0];
        double *nxt=dp[1];
        memset(prv,0,sizeof(double)*(n+1));
        prv[n]=1.0;
        
        for(int r=0;r<M;r++)
        {
            for(int i=0;i<=n;i++)
            {
                int jub=min(i,n-i);
                double t=0.0;
                for(int  j=0;j<=jub;j++)
                {
                    t=max(t,P*prv[i+j]+(1-P)*prv[i-j]);
                }
                nxt[i]=t;
            }
            swap(prv,nxt);
        }
        int i=(ll)X*n/1000000;
        printf("%.6f
    ",prv[i]);
    } 

     你忘了当时dp就没咋学啊。。。

  • 相关阅读:
    SQL中join的用法
    SQL中sysname数据类型的含义(转)
    MVC-Razor视图
    GridView用法
    常见的23种设计模式
    协程
    Kotlin学习
    数据绑定库和MVVM
    LiveData
    函数式编程
  • 原文地址:https://www.cnblogs.com/beiyueya/p/12286983.html
Copyright © 2011-2022 走看看