杭州学军中学机房吧 关注:53贴子:388
  • 2回复贴,共1

【CF】Round#107题解

只看楼主收藏回复

Round#107
A 判断一个数是否有大於2个质因数(可以相同)。这不说了。
B 除了k=1和k=n的情况,其他情况下如果k是偶数,那麼原串只有一种字符构成;否则只由两种字符交替构成。
C 每个旅客分开处理。原文题等价于在一段路程中选择其一个子段,这个子段收益最大。裸的线段树。
D 用f[i][j][k]表示将从i到j的一段全部消去,这一段被k层匹配的字母所包含的最大值。然后dp就很显然了。由于原串可以有不消去的字符,因此计算出f[i][j][k]之后再进行一边dp计算答案即可。
E 这题可以二分答案来进行计算。因为求的是最大的中位数可以是多少,於是我们二分一个答案后,将所有大於等於它的数权值改为1,小於他的数权值改为-1,那麼如果有一段路径的权值和大於等於0,就代表存在一个大於等於我们当前答案的可行中位数。因此我们只要找出权值和最大的长度在L到R之间的一条路径即可。这可以用点的分治来做。点的分治在此不详述,请参见09年漆子超的集训队论文以及2010冬令营的rebuild一题解题报告。


IP属地:上海1楼2012-02-22 09:22回复
    SF


    IP属地:美国2楼2012-02-22 09:23
    回复

      P.S.我是拿来做签名用的


      IP属地:上海3楼2012-02-22 18:26
      回复