1 条题解

  • 0
    @ 2023-5-26 11:13:52

    考虑令一个数一定选择,那么我们枚举它的因数,对每个是因数倍数的数进行统计,判断是否存在一个数量 n2\geq\dfrac n2 即可。

    时间复杂度:找出所有因数 Θ(n)\Theta(n),排序 Θ(nlogn)\Theta(n\log n),统计 Θ(n+d2(n))\Theta(n+d^2(n)),总时间复杂度 Θ(nlogn+d2(n))\Theta(n\log n+d^2(n))

    那么随机选取 xx 个数如上计算,由于每个数不被选中的概率是 12\dfrac 12,故这样的随机化算法有 12x\dfrac 1{2^x} 的概率出错。那么 xx 取到 1212 左右即可 AC。

    由于这里 nn 最大到 10610^6,直接使用 rand() 容易挂,改为 ((long long)rand()<<31)|rand() 较为保险。

    • 1

    信息

    ID
    5485
    时间
    4000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者