zoukankan      html  css  js  c++  java
  • AtCoder Beginner Contest 230

    solved: 5/8

    A

      如果x>=42那就++, 然后输出补全为三位数有前导0的x

    B

      模拟

    C

      模拟

    D

      先按右端点升序排序, 再按左端点升序

      可以发现每一拳都打在右端点是最优的, 证明的话可以发现, 假设我有某一拳打中间, 前面已经全部被摧毁了, 覆盖到后面的区域肯定不如右端点广

      然后贪心地打拳就可以了

    E

      整除分块, 对于$\lfloor \frac{n}{i} \rfloor$, 可以发现他的值是一段一段连续的, 下降的

      这个值也是可以算的, 假设当前枚举到i, 那么和i的值相同的区间就是覆盖的区间就是$[i, \frac{n}{\lfloor \frac{n}{i}\rfloor}]$

      当前的值是$\lfloor \frac{n}{i} \rfloor$, 设为x, 那么满足$\lfloor \frac{n}{R} \rfloor=x$的最大的R就是$\lfloor \frac{n}{x} \rfloor$

      $ix \leq n, R=max(i), R=\lfloor \frac{n}{x} \rfloor$


    补题: 2/3

    F

      设f[i]为前i个的答案, 那么新增一个数, 相当于把第j=0~i-1往后的所有数跟i合并

      考虑重复的情况, 可以发现只有这种情况000->00 或者000->00只有这种情况会出现重复

      那么对于前缀和同为j,k的两个位置, 我们只需要传k的答案, 因为k可以从j的答案那里来(默认从后到前合并 也就是上面的那种情况我们只统计后面那种)

      然后, 需要特判前缀和为0的情况, 此时, 我们把所有数合并到0上是合法的, 也就是空集是合法的(对于后面的合并有贡献), 而这样会被我们忽略掉, 所以应该+1

      然后, 到了输出, 需要判一下, 全局都为0的情况, 此时会把空集的状况算上

    G

      基于莫比乌斯函数的容斥

      先保证gcd(i, j)>1, 也就是枚举x, 使得i=ax, j=bx, 用莫比乌斯函数来容斥, 计算满足gcd(pi, pj)>1的对有几个(因为此时已经满足i,j不互质了)

      然后对于pi, pj, 我们再用一次莫比乌斯函数, 把每一个pi分解, 对于其他的数, 只要含有他的因数, 那就是跟他互质

      但是 对于12 6 24 他们都既是2的倍数, 又是3的倍数, 因此需要再用一次莫比乌斯函数来容斥

      效率是$O(NlnN+Nlog_2N)$的

  • 相关阅读:
    Design:目录
    前端框架:template
    Template-ArtTemplate:artTemplate.js
    开发框架:AdminLTE
    开发框架:目录
    杂项:短网址
    httpd
    Java实现洛谷 P1428 小鱼比可爱
    Java实现洛谷 P1428 小鱼比可爱
    java实现洛谷P1308统计单词数
  • 原文地址:https://www.cnblogs.com/gllonkxc/p/15641871.html
Copyright © 2011-2022 走看看