动归
转移方程 :dp(i, j, k) = dp(i – 1, j, k) * (i – 2) + dp(i – 1, j – 1, k) + dp(i – 1, j, k – 1)
i表示此时排第i个人 ;j表示从左可以看到j个人; k 表示从右可以看到k个人;
巧妙的是将要排的第i个人看作是最矮的 所以当这个人站在队列的中间i-2个位置不会影响j和k
而站在最左边j要加1 站在最右边 k要加1
动归
转移方程 :dp(i, j, k) = dp(i – 1, j, k) * (i – 2) + dp(i – 1, j – 1, k) + dp(i – 1, j, k – 1)
i表示此时排第i个人 ;j表示从左可以看到j个人; k 表示从右可以看到k个人;
巧妙的是将要排的第i个人看作是最矮的 所以当这个人站在队列的中间i-2个位置不会影响j和k
而站在最左边j要加1 站在最右边 k要加1
转载于:https://www.cnblogs.com/avema/p/3774178.html