摘要: 题意 给出一个字符串,每次询问其一个子串$[S_l,S_r]$在原串中第$k$次出现所在的位置(开头位置) 解法 题意很简洁,思路也很简洁 就是代码巨难打 总之这道题还是让我很大程度上加深了对于$SAM$的认识啦,还去学了一下线段树合并 首先,根据后缀自动机的性质我们能知道题目所要求的的实际上是 $ 阅读全文
posted @ 2019-09-02 22:29 四季夏目天下第一 阅读(311) 评论(0) 推荐(0) 编辑
摘要: 题意 给一个$1$到$n$的排列 现在有$m$个操作,每个操作是下面的一种: $(1,pos)$,指把$pos$位上的数增加$10,000,000$ $(2,r,k)$,询问操作,你需要输出一个数满足下列三个条件 1. 这个数不等于$a_i(1\leq i \leq r)$中的任意一个 2. 这个数 阅读全文
posted @ 2019-09-02 22:04 四季夏目天下第一 阅读(211) 评论(0) 推荐(0) 编辑
摘要: El Psy Congroo! 题意 给出一个长为$n$的数组$a$,与一个长为$m$的数组$b$ 求数组$a$与数组$b$的 最长公共上升子序列 长度并输出任意一组方案 $1\leq n,m\leq 5000$ 解法 这题很有意思 首先对于这类匹配问题,我们一般可以设$f[i][j]$表示$a$数 阅读全文
posted @ 2019-09-02 20:54 四季夏目天下第一 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 题意 给一个大小为$N$的数组$A$,每次对数组进行如下的变换: $B[i]=A[i]\oplus A[i+1]$ $A[i]=B[i]$ 这里的$\oplus$运算指异或 我们会发现每次数组$A$的长度会减一,当数组$A$的长度减至一时,结束变换 如果我们把每次变换后的$A$数组的第一项保存下来, 阅读全文
posted @ 2019-09-02 15:09 四季夏目天下第一 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 题意 经典的 约瑟夫问题 $n$个人标号为$0...n 1$排成一圈,由第$0$个人开始报数,报到$k$的人~~去世~~ 求最后一个活下来的人是谁 解法 解法$0$:模拟算法$O(n^2)$ 链表模拟删除即可 入门题 解法$1$:线性算法$O(n)$ cpp int res = 0; for (in 阅读全文
posted @ 2019-09-02 13:05 四季夏目天下第一 阅读(177) 评论(0) 推荐(0) 编辑