CYEZ 模拟赛 2

这篇具有很好参考价值的文章主要介绍了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 打了个还算优秀的暴力,转二维数点和根号分治比较难想到。文章来源地址https://www.toymoban.com/news/detail-701223.html

到了这里,关于CYEZ 模拟赛 2的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第十五届蓝桥杯模拟赛(第二期)

    大家好,我是晴天学长,本次分享,制作不易,本次题解只用于学习用途,如果有考试需要的小伙伴请考完试再来看题解进行学习,需要的小伙伴可以点赞关注评论一波哦!后续会继续更新第三期的。💪💪💪 问题描述 小蓝要在屏幕上放置一行文字,每个字的宽度相同。 小

    2024年02月03日
    浏览(91)
  • 第十五届蓝桥杯模拟赛(第一期)

    大家好,我是晴天学长,本次分享,制作不易,需要的小伙伴可以点赞关注评论一波哦!后续会继续更新第二期第三期的。💪💪💪 问题描述 请找到一个大于 2022 的最小数,这个数转换成十六进制之后,所有的数位(不含前导 0)都为字母(A 到 F)。 请将这个数的十进制形

    2024年02月04日
    浏览(65)
  • pta模拟赛 L1-8 小偷踩点(C++)

    阅读理解太难了  俗话说不怕贼偷,就怕贼惦记。 小偷在作案前有时会在居民家的门、墙上做一些标记,每一种记号代表一个含义,一般人看不懂,但同行一看便知道这个家庭的情况。不过派出所干警也不是吃素的,很快破译了这些记号的含义(如上图),并且在辖区内广为

    2024年04月26日
    浏览(102)
  • 第十五届蓝桥杯模拟赛(第一期 C++)

    问题描述 请找到一个大于 2022 的最小数,这个数转换成十六进制之后,所有的数位(不含前导 0)都为字母(A 到 F)。请将这个数的十进制形式作为答案提交。    答案: 2730 思路分析: 直接暴力秒了 问题描述 在 Excel 中,列的名称使用英文字母的组合。前 26 列用一个字母

    2024年02月05日
    浏览(55)
  • 第十五届蓝桥杯模拟赛(第一期)Python

    创作不易,欢迎小伙伴们关注、点赞+收藏! 问题描述 请找到一个大于 2022 的最小数,这个数转换成十六进制之后,所有的数位(不含前导 0)都为字母(A 到 F)。 请将这个数的十进制形式作为答案提交。 答案提交 这是一道结果填空的题,你只需要算出结果后提交即可。本

    2024年02月05日
    浏览(75)
  • 第十五届蓝桥杯模拟赛(第二期)JAVA

    (做的时候忘记小题截图了,没有题目,个人答案,可能会有问题) 1. 108 2.608 3.4169 4.901440 5.541(有问题,看错题目了) 6. 问题描述 给定一个正好六位的正整数 x,请将 x 循环左移一位后输出。 所谓循环左移一位,是指将原来的十万位变为个位,原来的万位到个位向左移动依

    2024年02月04日
    浏览(57)
  • 第十四届蓝桥杯模拟赛(第一期)——C语言版

    问题描述 十进制整数 2 在十进制中是 1 位数,在二进制中对应 10 ,是 2 位数。 十进制整数 22 在十进制中是 2 位数,在二进制中对应 10110 ,是 5 位数。 请问十进制整数 2022 在二进制中是几位数? 答案提交 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果

    2023年04月09日
    浏览(62)
  • 第十五届蓝桥杯 模拟赛第二期java组题解

    一、 问题描述 小蓝要在屏幕上放置一行文字,每个字的宽度相同。 小蓝发现,如果每个字的宽为 36 像素,一行正好放下 30 个字,字符之间和前后都没 有任何空隙。 请问,如果每个字宽为 10 像素,字符之间不包含空隙,一行可以放下多少个字? 答案提交 这是一道结果填空

    2024年02月03日
    浏览(54)
  • 第十五届蓝桥杯模拟赛B组(第二期)C++

    前言: 第一次做蓝桥模拟赛的博客记录,可能有很多不足的地方,现在将第十五届蓝桥杯模拟赛B组(第二期)的题目与代码与大家进行分享,我是用C++做的,有好几道算法题当时自己做的也是一脸懵,所以有好个别几道也是请教了其他大佬才分享出来的。 目录 ​编辑 一、

    2024年02月05日
    浏览(56)
  • 第十五届蓝桥杯模拟赛(第二期)第5题(Python)

    最难的才有挑战性,才值得学习! 小蓝有一个01矩阵。他打算将第一行第一列的 0 变为 2 。变化过程有传染性,每次 2 的上下左右四个相邻的位置中的 0 都会变成 2 。直到最后每个 2 的周围都是 1 或 2 结束。 请问,最终矩阵中有多少个 2 ? 以下是小蓝的矩阵,共 30 行 40 列。

    2024年02月04日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包