zoukankan      html  css  js  c++  java
  • IIIDX新理解

    根据题意,我们考虑从小到大枚举树上每个节点,并且让它的值最小。
    一组已经确定的值的序列,序列上的每个点都会要求它的子树的值大于等于它。
    已经确定的值已经满足条件,所以只需要考虑未被确定的值的限制,也就是要求若干子树(若干dfs序连续段)的值(leq 某个数)
    考虑使用二分图完美匹配。
    把每个数从大到小排序,并且删除已经被选择的数。
    这样子每个点会向一个后缀连边,可以判定二分图完美匹配。
    时间复杂度(O(n^5))
    然而出题人并没给这个部分分。
    考虑hall定理。容易发现这么两个引理。
    引理1:把所有点连向的后缀按照长度从小到大排序,钦定长度相同的点一起选可以正确的判定。
    引理2:如果选择了长度为(l)的后缀,则同时选择长度(leq l)的后缀判定答案不变。
    可以直接按照这两个引理判定,一次时间复杂度(O(n)),总时间复杂度(O(n^3))
    发现可以二分,时间复杂度降低到(O(n^2log_2n))
    实际上,每个限制后缀(设长度为(l))都要求长度比它小的前缀的权值和>l。
    移项可以得到限制和(-)比他小的前缀的权值和(>0)
    我们需要一个数据结构支持快速查找([1...x])权值(>0)的前缀的长度最大值,插入/删除一个限制。
    这可以使用线段树/平衡树维护。
    线段树上下标为(l)的位置初始为(l),每一次对一个后缀减去某个值,或者查询从前往后第一个权值(>0)的前缀。
    第一个操作可以打标记,第二个操作可以线段树上二分。

  • 相关阅读:
    Asp.Net构架(Http请求处理流程)、(Http Handler 介绍)、(HttpModule 介绍)
    JQuery中的事件(三)
    关于asp.net mvc中的httpModules 与 httpHandler
    jQuery中的CSS(二)
    JQuery选择器(一)
    JavaScript中利用Ajax 实现客户端与服务器端通信(九)
    JavaScriptDom操作与高级应用(八)
    oracle(二)V$lock 视图中ID1 , ID2 列的含义
    关于static、内部类
    oracle(一)复习起航
  • 原文地址:https://www.cnblogs.com/ctmlpfs/p/14542683.html
Copyright © 2011-2022 走看看