csp-s91 T2 Cicada与排序

 ̄綄美尐妖づ 提交于 2019-12-03 03:57:40

颓到了yzh的正常版dp定义和讲解

考虑题目随机的部分在于相同数之间的选择,要求的部分是最终的位置

由于总体考虑复杂且n比较小考虑对每个数去跑归并,设g[i][j]表示左右指针分别在i,j的概率

那么局面发生的概率就得知并且该放哪个数也可得知

再设一个f数组用来求答案,f[i][j]表示对于编号为i的分治节点当前处理的数放在j的概率

到着推一开始f[k][pos]=1;   那么f[k][i-1+j-mid][j]=f[k<<1][i]*g[i][j]*fir+f[k<<1|1][j]*g[i][j]*sec;

fir和sec由比较结果确定是0.5还是1或0。

 

将局面发生的概率确定下来

复杂情况下考虑固定一种情况来做

不要memset,f数组很大且有无用内存。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!