poj 1644 To Bet or Not To Bet

poj 1644 To Bet or Not To Bet,第1张

poj 1644 To Bet or Not To Bet
#include<iostream>#include<cstring>#include<cstdio>#include<cmath>using namespace std;const int l=-55555;int main(){     int n,m,t,i,j,q,h,f,ll,v;     char s[500];     char ss[50];     double a[55][45];     int p[55];     cin>>n;     for(q=1;q<=n;q++){         cin>>m>>t;        getchar();         gets(s);         ll=strlen(s);        j=0;         for(i=1;i<=m;i++){   v=0;   while(s[j]!=' '&&s[j]!='')   {        ss[v]=s[j];         v++;        j++;    }    ss[v]='';   j++;  if(ss[0]=='L')        p[i]=l;   else        sscanf(ss,"%d",p+i);          }         p[0]=0;         p[m+1]=0;        for(i=0;i<=m;i++)  a[i][0]=0;        for(i=0;i<=t;i++)  a[m+1][i]=1;         for(i=1;i<=t;i++){  for(j=0;j<=m;j++){     if(p[j+1]==l) {if(i<=2)    a[j][i]=0; else    a[j][i]=a[j+1][i-2]/2.0;      }      else      { h=j+1+p[j+1];if(h<0)h=0;if(h>m+1)     h=m+1; a[j][i]=a[h][i-1]/2.0;      }     if(j==m)         a[j][i]+=0.5;       else      { if(p[j+2]==l){       if(i>2)          a[j][i]+=a[j+2][i-2]/2.0; }          else{        h=j+2+p[j+2];        if(h<0)       h=0;      if(h>m+1)        h=m+1;       a[j][i]+=a[h][i-1]/2.0; }      }   }          }         if(fabs(a[0][t]-0.5000)<0.0000001)     printf("Push. 0.5000n");          else          {      f=a[0][t]*10000000;     if(f>5000000)         printf("Bet for. %.4fn",a[0][t]);      else         printf("Bet against. %.4fn",a[0][t]);}     }     return 0;}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/4901370.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存