省略
省略
C++に変換後のコードはこちら
int N = 4;
char S[4][6];
double dp[7d4];
{
int i, j, ni, nj, nij;
int mask, dm;
double tmp;
int dx[5] = {0, 1, -1, 0, 0};
int dy[5] = {0, 0, 0, 1, -1};
rep(mask,1,1<<16){
dp[mask] = double_inf;
rep(i,N) rep(j,N){
dm = 5;
tmp = 0;
rep(d,5){
(ni, nj) = (i + dx[d], j + dy[d]);
nij = ni * N + nj;
if(ni < 0 || nj < 0 || ni >= N || nj >= N || !BIT_ith(mask, nij)) continue;
tmp += dp[mask ^ BIT_ith(nij)];
dm--;
}
if(dm==5) continue;
dp[mask] <?= (tmp + 5) / (5 - dm);
}
}
rd(S(N));
mask = 0;
rep(i,N) rep(j,N) if(S[i][j]=='#') mask |= BIT_ith(i*4+j);
wt(dp[mask]);
}
Current time: 2024年04月27日09時54分49秒
Last modified: 2020年12月30日16時59分26秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder
トップページに戻る
Logged in as: unknown user (not login)