- 2016
T3
- @ 2025-10-10 20:14:41
/*
floyd 预处理所有点之间的最短距离
状态表示:
f[i][j][0] 表示前i个课程,申请换了j次,且最后一次没申请换的最小期望长度
f[i][j][1] 表示前i个课程,申请换了j次,且最后一次申请交换的最小期望长度
f[i][j][0] 在两种情况西下取最小值即可:
第i-1个课程没申请交换,最小期望是: f[i - 1][j][0] + d[a[i - 1][a[i]]]
第i-1个课程申请交换, 最小期望是:
f[i-1][j][1] + d[a[i - 1]][ai]*(1 - p[i - 1]) + d[b[i - 1]][a[i]] * p[i]
f[i][j][1] 也是同理
f[i][j][1] = f[i-1][j - 1][0] + d[a[i - 1]][a[i]]*(1 - p[i])
+ d[a[i - 1]][b[i]]*p[i];
f[i][j][1] = f[i - 1][j - 1][1]
+ d[a[i - 1]][a[i]]*(1 - p[i - 1])*(1 - p[i])
+ d[b[i-1]]][a[i]]*p[i - 1]*(1 - p[i])
+ d[a[i - 1]][b[i]]*(1 - p[i - 1])*p[i]
+ d[b[i - 1]][b[i]]*p[i - 1] * p[i]
初始化 f[1][0][0] = f[1][1][1] = 0;
f[n][i][0] f[n][i][1] 的最小值即为答案。
*/
0 条评论
目前还没有评论...