zoukankan      html  css  js  c++  java
  • noi前第十三场 题解

    A. 钩子

    可以发现大概问题是一层一层的。
    对于每一层,一定会选完所有长度为 (2x,2x-1) 的连续段之后递归下一段。
    可以考虑将这样的选择合并在一起考虑,然后做一个 (dp)
    可以发现概率的大小大概只与剩下的奇数、偶数段的个数有关,所以记录奇数段的个数就可以转移了。
    然后的问题是怎么继续考虑下一层。
    比较简单的是奇数段,只要选中间一个点就好了。
    对于偶数段,选择两种可能都是可以的。
    但是容易发现这样的事情:不同的段之间不会相互影响,相同段的左右两半是对称的。
    所以可以钦定这次的选择是偶数段的靠左的中点,在递归结束之后对所有答案按照对称轴取个平均数就好了。
     

    B. 加减

    首先写出一个简单的 (dp)(f_{i,j}) 表示前 (i) 个里选了 (j) 个的最大收益。
    打表之后可以很容易的发现,这个函数是凸的,并且转移也是凸的。
    所以可以写个无旋 (treap) 合并,然而常数大的飞起。
    其实是一个不难的做法,因为函数是凸的,然后进行的操作是取 (max),关注的信息也不多。
    大概可以想到分治之后进行类似闵可夫斯基和的东西,其实就是差分归并再做一遍前缀和。
     

    C. 树高

    大概的思想是,首先把染色点转化为染色与它父亲的边。
    然后可以发现,一个染色操作最多造成联通块个数变化 (1)
    这也就是说合并的总次数是线性的。
    然而显然直接转化并不正确,仔细观察一下。
    其实不合法的情况仅当最上面一个点不联通。
    可以找到最上面的点,之后的情况会形成一段连续的区间。
    对于合并操作,其实一定是父亲与儿子的合并,其实写一个 (ETT) 就可以支持这样的交换子树的操作。

  • 相关阅读:
    RTT学习之sensor设备
    RTT学习之PWM、ADC设备
    RTT学习之SPI设备
    rtt学习之线程间同步与通信
    RTT之时钟管理
    ASP.NET 中整合JavaScript的技巧
    CSS弹出背景半透明窗口
    JavaScript实现继承的混合方式
    jquery-仿flash的一个导航栏特效
    html5与css3学习实践--基础的内容划分标签
  • 原文地址:https://www.cnblogs.com/skyh/p/13387839.html
Copyright © 2011-2022 走看看