核心思路
定义 dp[i][j]dp[i][j]dp[i][j] 为妖怪 iii 和 jjj 基因相同的概率。利用记忆化搜索求解:
1. 边界:若 i=ji=ji=j,概率为 111;若两人均为始祖且 i≠ji \neq ji=j,概率为 000。
2. 转移:
* 若仅 iii 有父母 fa,mofa, mofa,mo:dp[i][j]=0.5⋅dp[fa][j]+0.5⋅dp[mo][j]dp[i][j] = 0.5 \cdot dp[fa][j] + 0.5 \cdot dp[mo][j]dp[i][j]=0.5⋅dp[fa][j]+0.5⋅dp[mo][j]
* 若均有父母:dp[i][j]=0.25∑dp[fai][faj...]dp[i][j] = 0.25 \sum dp[fa_i][fa_j...]dp[i][j]=0.25∑dp[fai ][faj ...]