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) 这方面想想

  • 相关阅读:
    git 命令行下浏览器tig使用记录
    根据进程名字杀死进程
    centos7 在线安装postgresql9.5
    HttpClient使用代理访问
    nmap查看服务器端口使用情况
    java后台启动jar包
    不同语言,系统通过共享内存方式实现信息交互
    释放 MappedByteBuffer映射的内存
    Java使用ByteBuffer读取大文件
    Java共享内存
  • 原文地址:https://www.cnblogs.com/yspm/p/14030911.html
Copyright © 2011-2022 走看看