YIEAC


私信TA

用户名:yzc233

访问量:1174

签 名:

身处在黑暗的人早已不会在乎什么了

等  级
排  名 3831
经  验 1754
参赛次数 0
文章发表 4
年  龄 0
在职情况 学生
学  校 泰州市省泰中附属初级中学
专  业

  自我简介:

解题思路:

注意事项:

参考代码:

#include<iostream>

using namespace std;

typedef int I;

#define X(A,B) (A[B[0]][B[1]][B[2]][B[3]][B[4]][B[5]])

double cache[7][7][7][7][7][7];

bool vis[7][7][7][7][7][7];

double win(int h[6])

{ if(X(vis,h)) return X(cache,h);

  X(vis,h)=true;

  X(cache,h)=0.;

  I mx=0;

  for(I i=0;i<6;i++)mx=max(mx,h[i]);

  I i=0,hh[6];

  for(I j=0;j<mx;j++)

  { for(I d=0;d<2;d++)

    {i=0+5*d;

      double loss=0.;

      for(I p=1;p<=3;p++)

       { for(I k=0;k<6;k++)hh[k]=h[k];

        I pp=p;

        I k=i;

        while(pp)

        { if(k<0||k>5)break;

          if(hh[k]>j)hh[k]--,pp--;

          k+=1-2*d;

        }

        loss+=win(hh);

      }

      loss=(1-loss/3.);

      if(loss>X(cache,h))X(cache,h)=loss;

    }

  }

  return X(cache,h);

}

I main()

{ I n;

  while(scanf("%d",&n)==1&&n)

  { I h[6]={0};

    for(I i=0;i<n;i++)scanf("%d",&h[i]);

    printf("%.6lf\n",win(h));

  }

  return 0;

}


 

0.0分

6 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区