• 一道好题


    背景:大爷给机房小伙伴们口述了一道题,可是yy了半天QAQ

    题意:给一个字符串(10^5),无限重复,多次(10^5)询问,求第x(10^9)位之前本质不同的子串个数

       考虑每次往后添加一个串,求新增的本质不同的子串个数

       

       首先,形成的本质不同的子串一定是从最前面的串到最后面的串的(蓝线)

       考虑该情况下相同的子串:终点在同一个串内(绿线),终点在前一个串内(黄线)

       那么要想在该情况下相同,需要满足的性质如下:

       

       我们发现,蓝色实心区域应和黄色实心区域相同,那么原字符串纯循环........

       所以我们将原字符串拆完后,单独处理第一次拼接,之后每次加上len^2即可.......

       代码懒得写了,用后缀数组瞎搞就行了

  • 相关阅读:
    装饰器
    FLASK
    Flask第一个实例
    各种各样的PyQt测试和例子
    项目实战:天气信息查询
    窗口设置、QSS
    槽和信号
    布局
    打印机
    菜单栏、工具栏、状态栏
  • 原文地址:https://www.cnblogs.com/xiaoxubi/p/6551019.html
Copyright © 2020-2023  润新知