2020牛客暑假多校
pubgoso
这个作者很懒,什么都没留下…
展开
-
2020牛客暑期多校训练营(第二场)A.All with Pairs(hash)
思路:我们先对每个串hash一下,记录所有后缀出现次数。然后枚举每个前缀,看相同的后缀出现了多少次。但是可能会重复计算。因为显然如果有一个形如xy…xy的前缀,匹配到xy…xy的后缀有x个,那么xy前缀匹配到xy后缀的y个必然包含x。但其实这x个不是合法的。。。要把不合法的去掉。就其实是每个位置的next值。。把不合法的去掉即可。 #include <bits/stdc++.h> using namespace std; typedef long long LL; const int N = 1原创 2020-07-14 19:15:35 · 210 阅读 · 0 评论 -
2020牛客暑期多校训练营(第二场)H(线段树+模拟)
H.Happy Triangle 思路:考虑构成三角形的充要条件是:任意两边之和大于第三边。 我们分三种情况进行讨论: 1.x是最大边 2.x是第二大边 3.x是第三大边 显然1,2两种情况可以用multiset来模拟讨论讨论。 我们用线段树来实现第三种情况的讨论,具体细节: 先将所有值存下来先离散化一下。 我们知道如果存在>=x且出现至少两次的y,则必然有解。可以用一个bit来解决这类情况。 否则,我们只需要在第一次添加和最后一次删除一个y的时候在线段树上更新大小相邻的两个点的差值。添加和删除都是最原创 2020-07-14 19:01:14 · 225 阅读 · 0 评论