摘要:
斐波那契数列模$10^m$的循环节为$6\times10^m$,于是从低位到高位dfs即可。#include#include#define N 20typedef long long ll;typedef unsigned long long ull;int n,i,flag;char a[N];l... 阅读全文
摘要:
不管怎么修改,所有数字的排名都不会发生变化。将a[]从小到大排序之后,维护一棵线段树,在上面修改。对于收割操作,在线段树上二分,找到需要修改的后缀进行区间赋值即可。时间复杂度$O(m\log n)$。#include#include#define N 1050000typedef long long... 阅读全文
摘要:
首先在串的末尾加上1000,然后进行归并,每次取字典序较小的那个后缀即可。用hash+二分支持查询lcp,时间复杂度$O(n\log n)$。#includetypedef long long ll;const int N=200010,P=31,D=1000173169;int n,m,i,j,k... 阅读全文
摘要:
把时间看成第一维,编号看成第二维,则每个询问等价于询问某个矩形范围内与某个数异或的最大值。从高位到低位贪心,考虑离线分治,假设当前处理第k位,那么把所有点以及按这一位分成两类,分别扫描线+树状数组维护即可。时间复杂度$O(n\log^2n)$。#include#include#define N 20... 阅读全文