• 2022.8.9 模拟赛


    T0

      小清新签到题,直接暴力 b f s bfs bfs 就过掉了,但是中间要记录每个字母有没有被走过,走过就不走了。不然如果整张图全都是同一个字母的话时间复杂度就炸掉了 就在这里挂掉 9 分

    T1 杰哥的数论

      让你很快的判断分数 p q \frac pq qp b b b 进制下是否为无限循环小数。

      根据一些常识,我们知道 p q \frac pq qp 是否循环跟 p p p 没啥关系,所以我们先给她们约分一下然后只关注 q q q(这里要特判 p = 0 p = 0 p=0)。

      然后我们发现给一个数 1 q \frac 1q q1 乘上一个 b b b 就相当于在 b b b 进制下把小数点右移一位。所以如果这个小数是有限的的,那么就存在一个 k ∈ N ∗ k \in N^* kN 使得 q ∣ b k q \mid b^k qbk

      于是我们就考虑一直给 q q q 除上 gcd ⁡ ( q , b ) \gcd(q, b) gcd(q,b),直到这俩玩意儿互质。此时如果 q = 1 q = 1 q=1 那么就说明 q q q 的质因子 b b b 都有。那么也就是说存在 k k k 使得 q ∣ b k q \mid b^k qbk,时间复杂度是 O ( T log ⁡ 2 q ) O(T\log^2q) O(Tlog2q) 的。

    T2 杰哥刷墙

    20pts

      有 20 p t s 20pts 20pts 是矩形的情况,据机房大佬 c m y cmy cmy 说这一部分的规律比较好找,答案就是:

    a n s = 2 n + 2 h − 2 ans = 2^n + 2^h - 2 ans=2n+2h2

      就直接 O ( log ⁡ n ) O(\log n) O(logn) 快速幂就做完了。

    T3 杰哥的数据结构

    10pts

      直接按照题面模拟,复杂度 O ( m n 2 ) O(mn^2) O(mn2)

    40 pts

      维护一个线段树支持单点修改,区间查询,我们发现一个性质,对于一个左端点 i i i 来说,她向右扩展之后的 o r or or 值是非严格单调递增的,所以我们可以考虑二分得到一个点 p o s pos pos,这个点是第一个大于等于 x x x 的右端点,那么这个点 i i i 的贡献就是 v − p o s + 1 v - pos + 1 vpos+1

      二分每次 c h e c k ( m i d ) check(mid) check(mid) 都要线段树区间查,所以复杂度是 O ( m n log ⁡ n ) O(mn\log n) O(mnlogn) 的。

    50 pts

      因为 x = 0 x = 0 x=0,所以答案就是:

    a n s = 1 2 ( r − l + 1 ) ( r − l + 2 ) ans = \frac 12(r - l + 1)(r - l + 2) ans=21(rl+1)(rl+2)

    100pts

      这里我们在上面已经发现了,对于一个左端点 i i i 来说,她向右扩展之后的 o r or or 值是非严格单调递增的。是因为二进制上的每一位变成 1 1 1 之后就不可能再变成 0 0 0。正因为如此每次向外扩展的时候产生的不同的 o r or or 值只可能有 l o g 2 max ⁡ { a i } log_2 \max \{a_i\} log2max{ai} 个。

      知道这个性质之后,就会有一个很巧妙的做法。我们还是考虑线段树,但是这里的线段树的每个节点上维护的东西不一样了。对于一个节点 ( t [ p ] . l , t [ p ] . r ) (t[p].l, t[p].r) (t[p].l,t[p].r),维护一个 a n s ans ans 表示这个区间的答案(也就是把题目中的那个式子的 u , v u, v u,v 换成 t [ p ] . l , t [ p ] . r t[p].l, t[p].r t[p].l,t[p].r)。再维护一个从左端点向右扩展时每一次得到新的 o r or or 值时下标和从右端点向左扩展时得到新的 o r or or 值时的下标。

      因为 o r or or 值最多只有 log ⁡ \log log 个,所以 p u s h u p pushup pushup 可以在很快的时间内做完,然后题目给出一个区间询问的时候就线段树区间查询就好了。

  • 相关阅读:
    10:00面试,10:06就出来了,问的问题有点变态。。。
    初识Spring
    Java新手小白入门篇 API -Socket网络编程
    javascript中的继承
    在VR全景中嵌入3D模型有哪些优势?
    每个前端都应该掌握的7个代码优化的小技巧
    安全操作(安卓推流)程序
    ArcgisForJS如何实现添加含图片样式的点要素?
    1200*C. Make It Good(二分 || 贪心)
    网络整体框架介绍
  • 原文地址:https://blog.csdn.net/ID246783/article/details/126245278