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了

  • 相关阅读:
    vs调试程序时发现变量、类等程序找不到混乱问题
    ExtJs中XTemplate使用(转)
    windows配置iis网站域名
    Codeforces Round #459 (Div. 2) C (括号问题)
    Codeforces Round #459 (Div. 2) AB
    数据生成python脚本
    腾讯云ubuntu14.04安装hustoj
    ubuntu16.04安装hustoj
    nginx服务器通过server让域名访问二级目录
    Apache服务器通过htaccess让域名指向二级目录
  • 原文地址:https://www.cnblogs.com/deaf/p/13394772.html
Copyright © 2011-2022 走看看