zoukankan      html  css  js  c++  java
  • 「考试反思」2020-12-02 小雪

    T1

    主席树做一下就行了,好像被标算暴踩

    T2

    这题目有个比较妙的性质:交换的时候只是这个段之内进行交换,并不影响段之间的逆序对

    那么不难得到直接维护每个区间长度的逆序对总数

    在交换的时候直接翻顺序对为逆序对即可

    我们发现这里的序列的区间长得很像线段树,也可以想成用归并的形式来求解

    所以代码实现稍微有点细节,需要先减掉相等情况下的数目

    T3

    先把题目转化出来,每次删掉一个数,剩下的数的所有方案 (sum) 肯定不变

    然后如果把这个数换成剩下的和加上 (1) ,那么得到了 (2sum+1) 种方案

    所以我们求这个剩下的数的最多方案就行了

    因为值域比较小,可以 (bitset)

    然后考虑直接输出剩下的数的和是不能过对拍的,那么考虑这个换成的数应该是什么

    如果有一个数加上任意个其它的数不会造成重复,那么这样的数的最小值就是答案,上面的和加一符合

    这样的数 (x) 一定不可以被表示成两个无交的集合的和的差

    那么直接 (bitset) 左移右移做就行了

    T4

    (d_x)(x) 最近的点距离 (x) 的距离,那么有几个性质:

    如果 (d_xle d_{fa_x}) 那么会考虑在 (fa_x) 处放

    然后考虑记 (f_x) 表示深度最浅的羊是不是被保护和 (g_x) 子树里面远能保护的点

    然后考虑转移,先统计上来 (g_x),这样就可以处理跨子树保护的问题

    然后再考虑儿子的 (d) 和根的 (d) ,如果大于就在儿子那里放个牧羊人

    很厉害的题目,现在的能力确实想不出来,性质挺深刻的

  • 相关阅读:
    exe自启动的几种方式
    关于 CShellManager 的作用
    DLL 调用 对话框 以及 如何获取调用dll 应用程序(窗口程序)的窗口句柄
    VC++ 2010 创建高级Ribbon界面详解(4)
    HPU--1221 Fibonacci数列
    取一个数的前几位
    HDU--1875 畅通工程再续
    POJ--2485 Highways
    【模板】HDU--1233 畅通工程
    hdu--1856 More is better
  • 原文地址:https://www.cnblogs.com/yspm/p/14074928.html
Copyright © 2011-2022 走看看