lalalala


私信TA

用户名:zhangshuo

访问量:161487

签 名:

像狗一样的学习,像绅士一样地玩耍。

等  级
排  名 7
经  验 31290
参赛次数 10
文章发表 201
年  龄 12
在职情况 学生
学  校 芜湖市第十一中学
专  业

  自我简介:

今日懒惰流下的口水,将会成为明日里伤心的泪水。

解题思路:





注意事项:





参考代码:

#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分

141 人评分

  评论区

  • «
  • »