2024牛客五一集训-1

Coffee Chicken

基本思路:

  • f[i] 表示 s[i]的字符串长度

    f[i]=f[i-2]+f[i]

  • solve(n,k)
    表示 s[n] 中 第 k 个 字符

  • n <= 2 时,直接返回答案

  • n > 2 时,

    1. k > f[i-2] 时 solve ( n-1 , k - f[n-2]);
      说明要找的字符在前一天中,也就是不在前两天的数据范围之内,因此直接不考虑前两天 把要查找的数据范围变小
    2. k <= f[i-2] 时 solve ( n-2, k)
      说明要查找的第K个字符在前两天的数据范围之内 要全局的搜索
  • 需特判 k > f[i]

    当前要查询的 第 k 个字符 保证在 f[i] 的范围之中

  • 初始值为6,7的斐波那契数列到56个就超过了1e12,

    58,60,62……的 前1e12个字母 都是第56个的前1e12个字母,

    59,61,63……的 前1e12个字母 都是第57个的前1e12个字母

    对于小于等于57的 solve(n,k);

Code
`

`

posted @ 2024-05-05 18:19  LTphy  阅读(20)  评论(0)    收藏  举报