概率DP。 看起来不难?
// by SiriusRen#includeusing namespace std;int n,ans;float a[128][128],f[128][8],jy;int main(){ scanf("%d",&n); start:jy=0; for(int i=0;i<1< >(j-1))^1)==(k>>(j-1))) f[i][j]+=f[i][j-1]*f[k][j-1]*a[i][k]; for(int i=0;i<1< jy)jy=f[i][n],ans=i; printf("%d\n",ans+1); if(scanf("%d",&n)&&~n)goto start;}