zoukankan      html  css  js  c++  java
  • 「晚测反思」2020-11-22 冲击

    T1

    用了晚测 (8) 把所有的袜子分开计数的思想

    那么答案就是 (frac{n}{2n-1})

    T2

    好题

    首先给出 (O(n^2)) 做法

    考虑怎么着能转移

    定义一个数 (i)(nxt_j)(i o j) 的最小的大于 (i) 的值

    对于每个 (i) 考虑所有的 (j<i),更新 (nxj_{j o i},f_i)

    这样是 (O(n^2))

    或者还可以直接建图跑有向图的 (DP)

    那么思考这个问题怎么用更低的复杂度来求解

    考试的时候老是以为这题目有单调性可以 (O(n)) 进行总转移

    但是发现其实差得有点多,因为单调性其实只是一个普通的性质

    考虑一个点 (i) 后面大于 (v_i) 的最小值所在的下标 (r_i) 和在 (j) 前面小于 (v_j) 的最大值下标 (l_j)

    可以转移的条件是 (l_jle i<jle r_i)

    考试的时候发现了这个性质

    那么下面有几种手段来解决这题目

    ((1) cdq) 分治

    在某区间产生了二维偏序条件的某种数的数量

    这个问题常常可以 (cdq)

    先按照值排一次

    然后对于整个 ([l,r]) 区间,先处理左半个区间的值(这里和我写三维偏序板子的cdq不太一样,但是也显然正确)

    然后考虑中间的转移

    处理出来 (valrankin[l,r])(x)(l_x,r_x)

    注意这里的定义都是下标来的,所以还得排成下标

    每次处理出来当前大于 (l_j)(p)(dp) 值 扔到树状数组里面

    区间加

    复杂度 (O(nlog^2n))

    ((2)) 线段树

    思想类似,具体实现需要 (Segment Tree Beats)

    代码只写了 (cdq)

    和传统的 (cdq) 的题目一样,理解不清楚各种关系是没法写的


    反思

    以后考试结束之前 (30 min) 想不了正解就先写个稍微高档一点的部分分

    省得爆零

    这个 (T2) 的偏序关系挺好的,以后见到了也可以往 (cdq) 这方面想想

  • 相关阅读:
    clickhouse使用docker安装单机版
    nacos使用docker安装单机版
    第三周学习进度
    第二周学习进度
    二柱子四则运算定制版
    课堂测试小程序
    学习进度
    阅读计划
    自我介绍
    寻找水王
  • 原文地址:https://www.cnblogs.com/yspm/p/14030911.html
Copyright © 2011-2022 走看看