zoukankan      html  css  js  c++  java
  • zhx的趣味题

    Problem 1

    (1,2,3,4,...,n) 这些数的和分成若干组,每一组都是质数,最少分几组。 (2 le n le 10^3)

    题目传送:CF45G

    答案有三种情况: (1, 2, 3)

    (n == 2) 时,输出 (1)

    (sum % 2 == 0) ,输出 (2)

    (sum % 2 == 1) ,如果 (sum - 2) 是质数,输出 (2) ,否则输出 (3)

    与哥德巴赫猜想有关

    Problem 2

    给一个长度为 (n) 的序列 (a_1, a_2, a_3,...,a_n)(m) 次询问,每次给两个数 (l)(r) ,求序列 ([l,r]) 中 能否选出三个数组成一个三角形。(n, m le 10^6, a_i le 2^{31} - 1)

    与斐波那契数列有关

    斐波那契数列是满足数列中没有三个数能组成一个三角形的最小的数列

    (a_i) 只在 int 范围内,这样的范围内斐波那契数列只有 (46) 位。

    所以只要数列长度大于 (46) 就一定成立。如果序列长度小于 (46) 暴力即可。

    Problem 3

    给你一个模数 (p)(n) 次询问 (a,b),数列 (H) 满足 (H_0 = a, H_1 = b, H_i = (H_{i - 1} + H_{i - 2}) mod p),找到一个最小的 (i),使得 (H_i = 0)

    小Trick : 斐波那切数列中 (F_i) 在模 (p) 意义下的循环节长度 (le 6p)

    手动模拟后可以发现 (H_i = F_{i-1} imes a + F_{i-2} imes b)

    [F_{i-1} imes a + F_{i-2} imes b equiv 0 pmod p ]

    [F_{i-1} imes a equiv - F_{i-2} imes b pmod p ]

    [F_{i-1} imes F_{i-2}^{-1} equiv a^{-1} imes b pmod p ]

    根据上面那个 trick ,预处理出前 (6p) 个数。排序后对于每次询问二分即可。

    (WC 2021 T3 的弱化版

  • 相关阅读:
    把线程池比作装修公司
    字符串常量池
    如何理解多租户架构?
    Redis的List的删除
    MySQL Explain详解
    Lombok
    减少TIME_WAIT时间的优化配置
    MySQL Join算法与调优白皮书(一)
    MySQL Join算法与调优白皮书(二)
    MySQL Join算法与调优白皮书(三)
  • 原文地址:https://www.cnblogs.com/Silymtics/p/14729630.html
Copyright © 2011-2022 走看看