多校
weixin_44019404
这个作者很懒,什么都没留下…
展开
-
2020牛客暑期多校训练营(第二场) A All with Pairs
求第iii个字符串的前缀最大能与所有的字符串的后缀匹配长度的平方和。首先,字符串匹配相等的问题可以考虑字符串hash。这道题我们发现,hash所有的字符串需要∑(len(si))\sum(len(s_{i}))∑(len(si)),是可以接受的。那么我们首先进行字符串的hash,统计每一个hash值有多少个。然后从头开始暴力所有的字符串,需要时间∑(len(si))\sum(len(s_{i}))∑(len(si)),针对前缀第i个串第j个结尾的s[i][j]s[i][j]s[i][j],贡献应该为:原创 2020-07-15 16:11:23 · 162 阅读 · 0 评论 -
2020牛客暑期多校训练营(第二场) G Greater and Greater
我们需要求的是,考虑A数组的以第i个结尾的字串,长度为mmm,是否满足A[i]>=B[i]A[i]>=B[i]A[i]>=B[i]。假设令dp[i][j]=1,0dp[i][j]={1,0}dp[i][j]=1,0表示,A数组以第i个结尾时,长度为j的字串是否满足条件。就有dp[i][j]dp[i][j]dp[i][j]=(A[j]>=B[k])(A[j]>=B[k])(A[j]>=B[k])&dp[i−1][k−1]k=1,2,3,..,jdp[i-1][k-原创 2020-07-15 16:00:18 · 175 阅读 · 0 评论 -
2020牛客暑期多校训练营(第二场) H Happy Triangle
这道题可以用splaysplaysplay等平衡树操作,我利用的线段树。直接思考如何判断三角形成立,即小的两边和大于第三边即可。那么对于找到的三元组{x,a,bx,a,bx,a,b}就有如下的判断(默认a<ba<ba<b)1.x<ax<ax<a&&x<bx<bx<b得到x+a>bx+a>bx+a>b就有x>b−ax>b-ax>b−a2.x>ax>ax>a&&x&l原创 2020-07-15 15:42:41 · 134 阅读 · 0 评论 -
2020牛客暑期多校训练营(第二场)J Just Shuffle
首先通过第k个,我们可以发现置换规则。可以发现每一个环和他的长度。然后思考怎么通过第k个,找到第一个。对于每一个环而言,他转动k次的效果等于k%len(len是环的长度)记为t(t<=len),现在从t出发,还原到第一次转动。可以考虑成再模len的意义下,t∗t−1t*t^{-1}t∗t−1=1,即t关于len的逆元。于是求出逆元,再转动一次即可。#include<iostream>#include<cstring>#include<algorithm>#原创 2020-07-15 15:32:18 · 136 阅读 · 0 评论 -
2020牛客暑期多校训练营(第二场) C Cover the Tree
假设叶子节点是L个。首先可以证明下界是L+12\frac{L+1}{2}2L+1。所以我们先把叶子节点抽出来,然后通过dfs序排序好。记为[1,L][1,L][1,L]然后连接[i,i+L2](i<=L2)[i,i+\frac{L}{2}](i<=\frac{L}{2})[i,i+2L](i<=2L)我们假设有一颗子树,他的叶子节点编号是[l,r][l,r][l,r],假设r<L/2r<L/2r<L/2那么该子树到根节点的链,肯定会被[l,l+L2][l,l+原创 2020-07-15 15:20:12 · 131 阅读 · 0 评论 -
2020牛客暑期多校训练营(第二场) F Fake Maxpooling
这个题目本质是求,加入给一个长度为n的区间,求区间内,长度为k内的最大值是多少。因为题目时间限制,不能直接用线段树等。于是关于最大值我们思考到了单调栈。但是单调栈只能处理区间[0,r]的最大值。所以我们还需要移动左指针,保证区间长度是k。故使用双端队列。队列中单调递减。队头保证在区间[r-k+1,r]中,队尾保证单调性正确。每一次取队头元素即可。所以这道题我们预处理,先预处理n行,每一行中每一个点的区间最大值是多少,再计算每一列中,最大值是多少(使用行的最大值,这样只有k个)。#include<原创 2020-07-15 15:12:52 · 92 阅读 · 0 评论 -
2020牛客暑期多校训练营(第一场)A B-Suffix Array
首先是题解的做法#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<cstdlib>#include<climits>#include<stack>#include<vector>#include<queue>#include<set>#include<bit原创 2020-07-15 15:07:30 · 183 阅读 · 1 评论