• CYEZ 模拟赛 2


    题面

    A 毒瘤计数题

    萌萌题。

    枚举 i = min ⁡ ( S ) i=\min (S) i=min(S),答案就是 ∑ i = 1 n 2 n − i ( 2 i − 1 − 1 ) \sum _{i=1}^n 2^{n-i}(2^{i-1}-1) i=1n2ni(2i11),容易化成 n × 2 n − 1 − 2 n + 1 n\times 2^{n-1}-2^n+1 n×2n12n+1

    __int128

    代码

    B 普通图论题

    卡卡题。

    O ( n ) O(n) O(n) 换根。记录最小值、次小值。

    代码

    C 简单数据结构题

    难难题。

    算法 1:

    标记区间的并,枚举关系,时间复杂度 O ( q ( n + m ) ) O(q(n+m)) O(q(n+m))

    算法 2:

    把互斥关系视为二维点。对于 x ∈ [ l i , r i ] x \in [l_i,r_i] x[li,ri] ∀ j \forall j j,数 y ∈ [ l i , r j ] y \in [l_i, r_j] y[li,rj] 时是否有点。

    二维数点一般做法是用 BIT,我们将询问离线后搭配扫描线可以做到 O ( ( ∑ k 2 + m ) log ⁡ n ) O((\sum k^2 + m)\log n) O((k2+m)logn)

    对于在线做法,考虑可持久化线段树。具体地,考虑维护 n n n 棵线段树,每棵线段树维护 x ∈ [ 1 , i ] x\in [1,i] x[1,i] 的矩阵点数。查矩形 ( l i , r i ) ( l j , r j ) (l_i,r_i)(l_j,r_j) (li,ri)(lj,rj) 就拿第 r i r_i ri 棵线段树的区间询问减去第 l i − 1 l_i-1 li1 棵的。复杂度 O ( m log ⁡ n + ∑ k 2 log ⁡ n ) O(m \log n + \sum k^2 \log n) O(mlogn+k2logn)

    根号分治

    算法 1 在 q q q 较小时效率较高,算法 2 在 k k k 较小时效率较高。而随着 q q q 的增大, k k k 减小。因此考虑分治, k > B k > B k>B 时算法 1, k ≤ B k \le B kB 时算法 2。

    分别计算上界:算法 1 至多执行 ∑ k B \frac {\sum k} {B} Bk 次,上界 O ( ∑ k B ( n + m ) ) O(\frac {\sum k} {B} (n +m)) O(Bk(n+m))。算法 2 在 k k k 较大时会取到上界,所有的 k = B k=B k=B 时,算法 2 至多执行 ∑ k B \frac {\sum k} {B} Bk 次,上界 O ( ∑ k B × B 2 log ⁡ n ) O(\frac{\sum k}{B}\times B^2 \log n) O(Bk×B2logn)

    总时间复杂度为 O ( ∑ k B ( n + m ) + ∑ k B × B 2 log ⁡ n ) O(\frac {\sum k} {B} (n +m) + \frac{\sum k}{B}\times B^2 \log n) O(Bk(n+m)+Bk×B2logn) n , m , q , ∑ k n,m,q,\sum k n,m,q,k 同阶时, B = n log ⁡ n B = \sqrt{\frac{n}{\log n}} B=lognn 时取得最小值。

    代码

    总结

    预估 100 + 100 + 40 = 240 100+100+40=240 100+100+40=240,实际 100 + 90 + 60 = 250 100+90+60=250 100+90+60=250。B 同样的代码赛后能过,评测机的锅。萌新 A B 花的时间有点长,遂 C 打了个还算优秀的暴力,转二维数点和根号分治比较难想到。

  • 相关阅读:
    Golang分布式应用之ZooKeeper
    【Java万花筒】跨越云平台的无服务器开发:使用Java构建弹性、高效的应用
    java计算机毕业设计校园二手交易系统源码+系统+mysql数据库+lw文档+部署
    哪些浏览器受到用户欢迎?分享这两款安全浏览器
    C# 线程与任务
    visual studio code 配置单片机库路径
    MySQL的时区引起的前后端数据交互不畅的问题解决
    Vega Prime入门教程12.10:DevToolCRO与部署
    应用方案 | 内置ALC的音频前置放大器D2538A和D3308芯片
    鉴智机器人完成亿元人民币级别的A轮融资第二次交割,由深创投和厚雪基金联合领投
  • 原文地址:https://blog.csdn.net/weixin_73113801/article/details/132738471