題解:dp的狀態設為,使用角色 j 去通過第 i 關的最大勝率(dp[i][j] )
從最後一場開始算:
dp[i][j] = rate[j][ AI[i] ] * max( dp[i+1][j] ,dp[i+1][a[i]);
即:使用角色 j 去通過第 i 關的最大勝率 = 使用角色 j 打贏第 i 關AI的勝率 * max(下一關用 j 通關的概率 , 下一關換用本關AI通過的概率)
設好初值,歷遍即可。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include