zoukankan      html  css  js  c++  java
  • 「考试」省选4

    瞎打了几个暴力上去竟然就能rk2.。。

    考完发现是数据结构专项测试。
    T1
    由于所有的圆不相交,那么我们可以认为这些圆的上下位置是不变的。
    很显然的一个树形(dp),复杂度瓶颈在于建树。
    每个圆拆成上下两个,做一次平衡树扫描线。
    排序的时候以(y)为第一关键字,上下半圆为第二关键字,编号是第三关键字。
    每个圆有进入和出去两个操作,然后进入的时候先插入平衡树然后找前驱。
    如果是下半圆说明是找到了父亲,否则是找到了兄弟,这样就可以建树了。
    (O(nlogn))的。

    T2
    简单的打表可以发现(lcm(T(N,1),T(N,2)......T(N,K))=lcm(N-K+1,N-K+2......N))
    这样考虑如何求这个东西。
    我们构造一个数组(D_n)使得(prodlimits_{i=n-k+1}^{n}D_n[i]=lcm(n-k+1,......,n))
    然后用skyh的说法就是最值差分。
    首先(D_n=D_{n-1})然后(D_n[n]=n)
    这样有可能是不正确的。
    那就找到较靠前的数来消去(D_n[n])中的质因子。
    然后用可持久化线段树就可以查询了。
    由于(n)及以下的数的质因子总个数为(nln ln n)
    那么复杂度就是:
    (O(nln ln n logn))

    T3
    傻逼静态仙人掌写了两百行树剖调不出来了。

  • 相关阅读:
    工具-pycharm-Git管理代码到GitHub
    工具-jenkins配置项目
    工具-jenkins重启服务
    工具-jenkins安装
    pycharm-管理GitHub
    博客园样式DIY
    接口测试-获取邮件授权码口令
    iOS 反射 学习 和 运用
    iOS 优化界面流畅度的探讨
    iOS 事件响应者链的学习(也有叫 UI连锁链)
  • 原文地址:https://www.cnblogs.com/Lrefrain/p/12182242.html
Copyright © 2011-2022 走看看