Playlist codeforces 268E

来源:互联网 发布:怎样开个淘宝网店 编辑:程序博客网 时间:2024/05/01 08:24

1.Consider any two songs which are at positions i and j (i < j) in the playlist. If Manao liked song i and disliked song j, then song i will be listened to again. Therefore, with probability p[i]*(1-p[j]) the process length will increase by L[i]. The sum of L[i]*p[i]*(1-p[j]) over all pairs (plus the length of all songs since Manao listens to them at least once) is the expected length for the fixed sequence.

So we have that if there are two songs (l1, p1) and (l2, p2), the first one should be placed earlier in the playlist ifl1*p1*(1-p2)>l2*p2*(1-p1) and later otherwise.

2.Suppose we have fixed j and are counting the contribution of song j towards the answer if Manao dislikes it. This value is(l1*p1 + l2*p2 + ... + l[j-1]*p[j-1]). For j+1, the corresponding value will be(l1*p1+...+l[j-1]*p[j-1]+l[j]*p[j]). It turns out that these values differ in only a single summand, so we can compute each of them in O(1)

原创粉丝点击