Bzoj2246 迷宮探險(概率 DP)

2022-03-07 06:09:35 字數 960 閱讀 4970

題目鏈結

用三進製表示陷阱狀態,1表示有害,2表示無害,0表示不知道

用\(f[s][i]\)表示狀態為s時陷阱i有害的概率,這個可以預處理出

\(d[s][i][j][h]\)表示狀態為s,在座標\((i,j)\),血量為h時的答案

然後就可以dp了,記憶化搜尋

#include #include #define db double

#define sta 300

#define n 36

using namespace std;

const int dx=;

const int dy=;

db dp[sta][n][n][6],f[sta][n];

int n,m,k,h,p[n],sx,sy,a[6];

char g[n][n];

inline int read()

while(ch>='0'&&ch<='9')

return x*f;

}db tmp[2];

void dfs(int x)

if(flag) continue;

tmp[(j>>i)&1]+=p[j];

}f[s][i]=tmp[1]/(tmp[1]+tmp[0]);

} }else for(int i=0;i<=2;++i)

}int change(int s,int pos,int x)

db dp(int s,int x,int y,int h)

} return tmp;

}int main()

int tot=1;for(int i=1;i<=k;++i)tot*=3;--tot;

dfs(0);

for(int i=0;iprintf("%.3lf\n",dp(tot,sx,sy,h));

return 0;

}

2 24作業講解

1 編寫課上講解的有參裝飾器準備明天默寫 2 還記得我們用函式物件的概念,製作乙個函式字典的操作嗎,來來來,我們有更高大上的做法,在檔案開頭宣告乙個空字典,然後在每個函式前加上裝飾器,完成自動新增到字典的操作1 func dic 23 4 func dic 56 有參裝飾器 x接收的是使用者輸入功能...

藍橋杯 遞迴 2 24

回形取數 藍橋杯 基礎練習 問題描述 回形取數就是沿矩陣的邊取數,若當前方向上無數可取或已經取過,則左轉90度。一開始位於矩陣左上角,方向向下。輸入格式 輸入第一行是兩個不超過200的正整數m,n,表示矩陣的行和列。接下來m行每行n個整數,表示這個矩陣。輸出格式 輸出只有一行,共mn個數,為輸入矩陣...

藍橋杯 練習(2 24)

給定n個十六進製制正整數,輸出它們對應的八進位制數。輸入的第一行為乙個正整數n 1 n 10 接下來n行,每行乙個由09 大寫字母af組成的字串,表示要轉換的十六進製制正整數,每個十六進製制數長度不超過100000。輸出n行,每行為輸入對應的八進位制正整數。注意 輸入的十六進製制數不會有前導0,比如...