BZOJ2319 黑白棋遊戲

2021-09-07 15:13:47 字數 541 閱讀 6759

將01串按1分段,那麼分析可得長度為$a$的段拼上長度為$b$的段的sg值為$a-[a\leq b]$。

設$f[i][j][k][l]$表示從後往前用了$i$個1,$j$個0,當前段長度為$k$,後面部分sg值為$l$的概率。

同時預處理出$g[i][j][k]$表示$i$個1,$j$個0的串,sg值為$k$的概率。

那麼對於最終答案,只需要dp出組合遊戲的sg值$>0$的概率即可。

時間複雜度$o(m^4+nm^2)$。

#includeconst int n=105,m=130;

const double eps=1e-12;

int n,ma,mb,o,i,j,k,l,a[n],b[n];double f[2][n][n][n],g[n][n][n],dp[n][m],ans;

int main()

for(i=1;i<=n;i++)

f[1][0][1][0]=f[0][1][1][0]=1;

for(o=i=0;i<=ma;o^=1,i++)

黑白棋遊戲

黑白棋遊戲 time limit 10000ms memory limit 65536k total submit 9 accepted 5 case time limit 1000ms description 問題描述 黑白棋遊戲的棋盤由4 4方格陣列構成。棋盤的每一方格中放有1枚棋子,共有8枚白...

黑白棋遊戲

用c 封裝了一下,只完成了乙個雛形,有很多功能沒有新增上,但 的行數已經縮短了很多了。include include include includeusing namespace std class chess int counter 計數器,計算棋子個數 const friend void dra...

黑白棋遊戲

include include using namespace std char e 30 30 int a 30 30 int c 30 int x 30 int y 30 intf int n,int sum int pos sum 2 n int cnt 0 int flag 0 int w ...