摘要: 求第$i$个字符串的前缀最大能与所有的字符串的后缀匹配长度的平方和。 首先,字符串匹配相等的问题可以考虑字符串hash。这道题我们发现,hash所有的字符串需要$\sum(len(s_))\(,是可以接受的。那么我们首先进行字符串的hash,统计每一个hash值有多少个。然后从头开始暴力所有的字符串 阅读全文
posted @ 2020-07-15 16:11 LORDXX 阅读(141) 评论(0) 推荐(0)
摘要: 我们需要求的是,考虑A数组的以第i个结尾的字串,长度为$m$,是否满足$A[i]>=B[i]$。 假设令$dp[i][j]={1,0}$表示,A数组以第i个结尾时,长度为j的字串是否满足条件。就有$dp[i][j]\(=\)(A[j]>=B[k])$&$dp[i-1][k-1]$这样的复杂度时$o( 阅读全文
posted @ 2020-07-15 16:00 LORDXX 阅读(137) 评论(0) 推荐(0)
摘要: 这道题可以用$splay$等平衡树操作,我利用的线段树。 直接思考如何判断三角形成立,即小的两边和大于第三边即可。那么对于找到的三元组{\(x,a,b\)}就有如下的判断(默认$a<b$) 1.$x<a$&&$x<b$得到$x+a>b$就有$x>b-a$ 2.$x>a$&&$x<b$得到$x+a>b 阅读全文
posted @ 2020-07-15 15:42 LORDXX 阅读(146) 评论(0) 推荐(0)
摘要: 首先通过第k个,我们可以发现置换规则。可以发现每一个环和他的长度。 然后思考怎么通过第k个,找到第一个。对于每一个环而言,他转动k次的效果等于k%len(len是环的长度)记为t(t<=len),现在从t出发,还原到第一次转动。可以考虑成再模len的意义下,\(t*t^{-1}\)=1,即t关于le 阅读全文
posted @ 2020-07-15 15:32 LORDXX 阅读(159) 评论(0) 推荐(0)
摘要: 假设叶子节点是L个。首先可以证明下界是$\frac{L+1}{2}$。 所以我们先把叶子节点抽出来,然后通过dfs序排序好。记为$[1,L]$ 然后连接$i,i+\frac{2}$ 我们假设有一颗子树,他的叶子节点编号是$[l,r]$,假设$r<L/2$那么该子树到根节点的链,肯定会被$[l,l+\ 阅读全文
posted @ 2020-07-15 15:20 LORDXX 阅读(123) 评论(0) 推荐(0)
摘要: 这个题目本质是求,加入给一个长度为n的区间,求区间内,长度为k内的最大值是多少。因为题目时间限制,不能直接用线段树等。于是关于最大值我们思考到了单调栈。但是单调栈只能处理区间[0,r]的最大值。所以我们还需要移动左指针,保证区间长度是k。故使用双端队列。队列中单调递减。 队头保证在区间[r-k+1, 阅读全文
posted @ 2020-07-15 15:13 LORDXX 阅读(113) 评论(0) 推荐(0)
摘要: 首先是题解的做法 #include<iostream> #include<cstring> #include<algorithm> #include<cmath> #include<cstdlib> #include<climits> #include<stack> #include<vector> 阅读全文
posted @ 2020-07-15 15:07 LORDXX 阅读(145) 评论(0) 推荐(0)