zoukankan      html  css  js  c++  java
  • 20200728训练记录

    做了两道可做题,和一道神仙题

    C发现是CTSC2016的题就先开了

    发现建出操作树每一个点的贡献在dfn序列上是一段连续的区间

    于是线段树分治+set维护动态凸包,询问直接set上二分就可以(O(nlog^2n))

    后来发现不需要动态的

    直接类似永久化把每个点打在线段树上的log个区间上

    查询直接在从上到下的log个区间上找就好了

    把点按x坐标排序维护个单调栈就(O(nlogn))预处理了

    考虑询问优化到一个log

    类似前几天做的子串求和2的做法

    对询问的x坐标排序

    那么对于线段树上每个节点维护的凸包决策点是单调的

    用指针扫下就(O((n+q)logn))

    写了1h左右中间没特殊处理点的横坐标相同的情况WA了好久

    A数树看出把所有港口缩成一个点后原图是一棵树

    于是直接prufer序算确定所有港口总度数的方案

    写个dp算一下港口分配度数的方案

    乘起来就好了

    发现模数不是质数要暴力分解质因数算

    结果没写完

    B是神仙题

    (O(nm))的dp不难想到

    但是优化就显得非常困难

    题解继续告诉我们dp数组是个下凸包

    这个用类似归纳法比较好证

    但是很难想到啊喂

    考虑用线段树维护凸包相邻点之间连线的解析式

    发现对于在一个层结束或开始的点

    他的贡献是一条斜率是1/-1的直线

    是一个下凸包

    分析一下上一层转移到这一层

    发现是一个分段函数

    前面一段斜率为定值

    中间答案不变

    后面一段斜率又是定值

    这又是下凸包

    于是也就说明整体是下凸包

    写个线段树支持区间赋值/增加,单点查就ok了

  • 相关阅读:
    繼續抽像類使用操作改變的問題
    C# 连接池
    简单实用的DataSet更新数据库的类+总结(c#)
    Clone方法
    去掉桌面图标阴影
    第七章 线程的调度、优先级和亲缘性(4)
    第七章 线程的调度、优先级和亲缘性(6)
    windows定时开关机
    Google Chrome 错误 (和诺顿冲突导致崩溃)
    第七章 线程的调度、优先级和亲缘性(7)
  • 原文地址:https://www.cnblogs.com/deaf/p/13394772.html
Copyright © 2011-2022 走看看