随笔分类 - 字符串
摘要:题意: 给一个长度为n的字符串s[0..n-1],但i的后继不再是i+1,而是(i*i+1)%n,求所有长度为n的“子串”中,字典序最大的是谁 n<=150000 分析: 如果是一般的字符串,那么直接求出后缀数组就行,但现在后继关系发生了变化 我们在倍增求后缀数组的过程中,只关心某个位置的下个2^k
阅读全文
摘要:题意: (1):在当前字符串的后面插入一个字符串 (2):询问字符串s在当前字符串中出现了几次?(作为连续子串) 字符串长度<=6e5,询问总长度<=3e6 分析: 考虑建个sam,然后把slink连起来就形成了一个前缀树 对于每个询问的串,就是求出它在sam里对应的点,然后在slink树种该点子树
阅读全文
摘要:C(分段) 题意: 分析: 我们分别考虑p=2和p>=3的情况 当p=2的时候,个数明显是[L,R]内完全平方数的个数 当p>=3的时候,我们注意到这样的数字个数是1e6级别的,且a最多也不超过1e6 我们可以对于每个a去枚举对应的p,然后丢到一个set里去重 还有一点要注意的,p=2可能会和p>=
阅读全文
摘要:A 略 B 略 C(轮廓线dp) 题意: 分析: 如果以(i,j)为右下角考虑设计dp,那么会需要用到多余的状态,这样状态就很爆炸了 仍旧考虑轮廓线dp,维护一个格子上的轮廓线的m个状态,考虑从dp(i,j)转移到一个dp(i,j+k) 即以(i,j)为矩形的左下角去枚举转移,这样只需要轮廓线上的状
阅读全文
摘要:A 略 B(大数) 题意: 求的奇偶性 其中n<=10^1000 分析: 等价于求$\biggl\lfloor\frac{n}{1}\biggr\rfloor + \biggl\lfloor\frac{n}{2}\biggr\rfloor+\biggl\lfloor\frac{n}{3}\biggr
阅读全文
摘要:题意: 给一个长度为n的字符串,定义$k=\floor{log_2 n}$ 一共k轮操作,第i次操作要删除当前字符串恰好长度为$2^{i-1}$的子串 问最后剩余的字符串字典序最小是多少? 分析: 首先很容易得到一个性质,那就是删除的那些串是可以不交叉的 很容易想到一个很简单的dp dp[i][j]
阅读全文
摘要:补题进度:10/10 A(树形dp) 略 B(dp) 题意: 给出一个n个关键节点的机械手臂,最开始是竖直的,即关键点在二维平面上的坐标分别是(0,0) (0,100) (0,200) (0,300)......,然后我们每次可以选择一个关键节点把它旋转45°(当然它上面的那些点也要跟着旋转) 现在
阅读全文
摘要:补题进度:6/10 A(状压dp) 题意: 有n个数字1,2,...,n,有m个限制(a,b),表示至少要有一个数字a排在数字b的前面 你需要构造出一个含有数字1~n的序列,数字可以重复多次,要求该序列满足所有的m个限制,并且长度最短,你只需要输出最短的长度 n<=18,m<=n(n-1) 分析:
阅读全文
摘要:补题进度:7/11 A(博弈论) 略 B 待填坑 C(贪心) 题意: 一个序列是good的当且仅当相邻两个数字不相同。给出一个长度为n的数列,每个数字是ai。定义一种操作就是把a中某个元素拿到首位去,问最少需要多少次操作才能让数列a变成good的。如果不可行则输出-1。 n<=1000,1<=ai<
阅读全文
摘要:补题进度:9/10 A(多项式) 题意: 在一个长度为n=262144的环上,一个人站在0点上,每一秒钟有$\frac{1}{2}$的概率待在原地不动,有$\frac{1}{4}$的概率向前走一步,有$\frac{1}{4}$概率向后走一步,问t秒后这个人在x点的概率是多少,结果模998244353
阅读全文
摘要:寒武纪camp网络测试赛 地址:oj点我进入 A(树形dp+树链剖分) 题意: 分析: 考虑树形dp,f0(x)和f1(x)分别表示以x为根的子树,不取x点或取x点的最大合法子集的元素个数 那么对于一个询问来说,答案就是max(f0(x),f1(x)),我们的任务就是对于每次修改操作维护所有f数组的
阅读全文
摘要:地址:https://www.nowcoder.com/acm/contest/58#question A(贪心) 略 B(贪心+栈) 略 C(manacher+后缀数组) 分析: 考虑枚举字符串的对称轴在哪 容易发现我们希望从对称轴开始尽可能向两边扩展成为回文串,在不能再扩展的位置就是我们的分割线
阅读全文
摘要:补题进度:10/12 地址:http://codeforces.com/gym/101194 A(签到) 略 B(数位DP) 题意: 定义一个01字符串为good串当且仅当将其奇数位或者偶数位单独拎出来是个回文串。 输出长度为n(<=1e5)的字典序排在第k(<=1e18)位的good串 分析: 很
阅读全文
摘要:题意 给一个长度不超过200000的字符串s,假定有一个字符串a,这个字符串在s中出现次数是f(a),你需要让$|a|f(a)$最大。 但是有一些位置是禁止的,即以该位置为结束位置的字符串不计数。 分析 先不考虑禁止的位置 那么可以求出后缀数组,枚举每一个height[i]作为|a|,向两边扩展,看
阅读全文
摘要:补题进度:7/11 1001(模意义下的卷积) 题意: 给出长度<=50000的两个数组A[] B[],保证数组中的值<=50000且A[]中数字两两不同,B[]中数字两两不同 有50000个询问,对于每个询问k,你需要回答有多少对(i,j)满足A[i]%B[j]==k,你只需要回答答案的奇偶性就行
阅读全文
摘要:补题进度:10/13 1001 待填坑 1002(kmp+递推) 题意: 有长度为n(<=50000)的字符串S和长度为m(m<=100)的字符串T,有k(k<=50000)组询问,每个询问(L,R),表示对于所有的(i,j)(1<=i<=L,R<=j<=n),将S[1..i]和S[j..n]拼接起
阅读全文
摘要:A =w= B QvQ C(并查集) 题意: 你需要根据要求构出一个字符串S 输入n个子串以及这些子串在S中出现的位置(有多个位置),输入数据保证不冲突 然后你根据这些已知子串去构一个字典序最小的S(也就是没涉及的位置填'a') 最终S的总长度<=2e6 分析: 不能直接暴力模拟,那样会TLE 给位
阅读全文
摘要:题目: https://loj.ac/problem/6173 分析: 考虑枚举宽度w,然后把宽度压位集中,将它们哈希 (这是w=2的时候) 然后可以写一下string=“ac#bc” 然后就是求这个string本质不同的字符串个数(要去掉连接符#) 这个可以用后缀数组/后缀自动机解决 小技巧:每个
阅读全文
摘要:A =w= B QvQ C 题意: 有n条线段(n<=2e5) 每条线段有左端点li,右端点ri,价值cost(1<=li<=ri<=2e5,cost<=1e9) 对于一个给定的x(x<=2e5),寻找两个不相交的线段,使它们的长度和恰好为x,并且价值和最小 分析: 想法肯定是枚举一个线段,然后去c
阅读全文
摘要:A、最长树链(loj6159) 分析: 对于每个质因数,取出所有是它倍数的点组成一个树,然后找最长路径 每个数操作次数是其质因数的个数 所以总的复杂度不超过O(nlogA) B、二分图染色(loj6160) 分析: 先转换模型——一个n*n的棋盘上,对于每个格子,可以下黑子,可以下白子,可以不下子,
阅读全文