Codeforces 380 简要题解

ABC见上一篇

 感觉这场比赛很有数学气息。

D:

  显然必须要贴着之前的人坐下。

  首先考虑没有限制的方案数。就是2n - 1(我们把1固定,其他的都只有两种方案,放完后长度为n)

  我们发现对于一个限制,比它小的限制只有可能在它的一边。

  于是对于有限制的一段,我们可以找到最靠近边界的两个限制,取其中最大的限制,递归计算向比它小的限制的方向走它的限制步所覆盖的一段,这一段应该包含目前区间内所有的限制,剩下的就是没有限制的,可以直接计算。

mycode:

 E:

  这个题目我们可以发现实际上就是取一个区间的数集{a[i]},所求就是:1/2 * a[1] + 1/4 * a[2] + 1/8 * a[3] + ……,由于精度所以我们可以忽视a[50]以后的。

  我们可以考虑一个数为结果带来的代价。我们考虑比V大的数,Let the position of elements on the left: p1> p2> ... > Ps1. And positions right: q1 < q2 < ... < qs2.这样它带来的代价就是Codeforces 380 简要题解

  mycode:

Codeforces 380 简要题解

上一篇:list::splice()函数详解


下一篇:XE5 Gesture 获取长按手势 iglongtap