08 2019 档案
摘要:A.题意:100个数字,大小100,问可否从中选出k个不同数字,输出位置 思路:map.count 代码: #include <bits/stdc++.h> using namespace std; #define ll long long #define forn(i,n) for(int i=0
阅读全文
摘要:题意:在树上操作,每次将两点路径值全变负和单点修改。每次求两点间路径的最大值。 思路: 边权转点权的话,每次把一条边的儿子点作为该边的权值。想起来挺好想,很容易出问题。 查询修改的话,要将多算的那条lca去掉就可以了。剩下的就是板子。 总结: 去掉lca,只需要判断top[x]==top[y]时,x
阅读全文
摘要:题意:对树上两点区间增加或减少每点的权值,单点查询每点的权值。 思路:一开始线段树写的,但是我的被卡了2*maxn的空间,优化一下就可以了,但是嫌太麻烦,出题人可能就打算卡部分人的线段树。 用bit的话,类似预处理数组,每次查询0-x点的区间和就可以,修改左端点和右端点的权值为v和-v即可。 代码:
阅读全文
摘要:题意:区间修改树上两点间的颜色种类,区间查询树上两点间的线段数。 思路:树刨+线段树,区间合并是第一次写。思路为线段树维护左端点和右端点的颜色,合并时相同就–。具体实现不太好写。 代码: #include <bits/stdc++.h> using namespace std; #define ll
阅读全文
摘要:题意:给一个5e5的字符串,求最长满足双回文的子串的长度。双回文的定义为:一个字符串长度为4,回文,且前半段和后半段单独为回文串。 思路:若已知条件的回文边界超过覆盖了新统计点,且该点的回文半径可以达到上一次的点,那么统计一次答案。 代码: #include <bits/stdc++.h> usin
阅读全文
摘要:题意:给一个01串,现在定义一个新的回文方式为0和1相等,而00,11不等。求有多少子串满足这种新的回文方式。 思路:求多少子串其实就是求每个点最大回文串半径。 manacher很好写O(n) hash的话,我们计算两个哈希值,一个s的一个翻转s后01再反转的哈希值。 之后二分判断即可。 manac
阅读全文
摘要:题意:给n个字符串,保证两两不重复。现在定义一对字符串如果仅只有1位不同,那么它视为相似字符串,问现在有多少对相似字符串。 思路:题目没给数据,其实可以O(lnlogn)暴力的。用hash爆力处理。 这次一开始用的map,TLE,后来用unordered_map,ce,最后用了数组。记录下,证明ma
阅读全文
摘要:题意:给一个2e4长的字符串 ,1e4次询问,每次询问一个区间内字符串的子串有多少种。 思路:字符串hash用来判重,之后dp预处理出每个区间的权值。复杂度On^2 值得总结的两点是: 为了使判重近似O1,可以如下不影响复杂度,通过%来解决,并且建链表。 判重之后这个问题就变成了给你1-n区间内所有
阅读全文
摘要:这场心态和状态不是特别好,Awa了一发,B读题慢,C读错wa了2发,Ewa了7发,D没耐心写下去,F场后学的。 总结: 要调整wa题的心态。 A题写慌了在判断条件加了个东西 C题the num of需要敏感,wa的另一发是if判断条件。 D题缓下来推一推就出来了,总是没想好子序列。 E题map 题解
阅读全文
摘要:题意:给你一个nm(300300)的矩阵,每个点都有一个权值-1e4-1e4,求最大联通块的权值。 思路: dp其实很好想,dpxij表示第x行i-j区间所联通0-x-1行的最大权值。 那么压缩到n^3我们需要做几件事情: 在n^2的时间内求出0-x-1行的与ij的最大权值(预处理+均摊复杂度+dp
阅读全文
摘要:这场一开始st卡在了IO的上面T了两发,我wa了两发c,有一些情况没有考虑到。50mins的时候我看st代码,发现没问题大胆换了IO,AC,跟st讲了2minsC的时候发现了wa点,改了AC。随后cxy也AC了J题。大概过了快1小时,我们做不下去了,退场补题,发现DE还是可以做的,对标区域赛铜尾,如
阅读全文
摘要:这场A读错了题12mins1A,B题卡读题18mins1A,C题还行13mins1A,D想了想觉得写起来有点慢,转头看E,发现比较简单,wa了2发,T了2发之后才A用了50mins+。F场后看的不太会,D题学了个二维预处理的方法。 总结: 打现场赛的时候不能题不读完就开始做题,尤其签到要细想。 E题
阅读全文
摘要:这场AB很快就秒了,C没读懂题,D也没读懂,开了E题,wa了2发之后休息了一会开始做CD,C很简单过了,然后继续怼E,wa了1发,开始看F然后开D,最后DE切换,后来发现Dwa3发是爆了int。E一直想拿并查集做懒得写tarjan,补题的时候发现了并查集的bug,最后还是拿了tarjan写。F题场后
阅读全文
摘要:题意:告诉你n个01串长度总3e4,看你能否构造一个无限长的01一串使其任何子串都不包含这n个01串。 思路:可以用n个01串建立一个ac自动机,如果无限长的话,意思则就是能否在ac自动机上构造一个无限长的链条使得每一个fail和 fail的fail 和 fail的fail的fail…不包含被标记的
阅读全文
摘要:这场A一发7mins,Bwa2发20mins,C卡题了一会换题,D题5-7mins,E题40mins,F题假算法。 一开始A题5mins写完交的时候输出格式错了再读题耽误了2mins,B题写完13mins之后少考虑了两种情况,各RE了两发,20minsac,送了20+7分钟的罚时,C题没有细想跳开了
阅读全文
摘要:第一次做ac自动机+dp的题。因为前日做过一道字符串dp题,这题做起来相对没那么困难一些。觉得一时间这题无法下手可以先试试这场div3的F题:https://blog.csdn.net/weixin_43262291/article/details/98390702 题意:给你n个模式串,现在构造出
阅读全文
摘要:本场a,b,c秒的较快,a2mins,b11mins,c8mins。b题在实现过程中有些偏慢,c题wa了一发,差点写出了一个hack点,如果是现场打可能会被fst。d题想错了一个地方,认为题读错了卡了40mins,e题20mins写完,f题场后看题解会,最后10mins理解了d题,写出了一个bug场
阅读全文
摘要:Aho板子 hdu2222 题意:t组数据,有n1e4个长度50的字符串,给了一个长度1e6模式串问模式串中有几个子串 代码: #include <bits/stdc++.h> using namespace std; #define ll long long #define forn(i,n) f
阅读全文
摘要:A题因为交了错了文件和试样例慢了2mins用了5mins,B题读题较慢用了13mins,C题读题也偏慢用了7mins,D题少考虑一种情况wa了3发用时22mins,E题读错了判断条件,写完用了40mins。F题场后看题解学会。 总结: 每次文件要在场前调整好。 过了A题仍要快速读题。 D题的多种情况
阅读全文
摘要:这场可能是因为stl和kmp用的熟,并且前段时间遇到过一道跟取余有关系的题给了思路比较接近,所以abcd都秒了。e题有思路,但是写不出来,f回头想了下觉得挺简单的。四题过后对应rank可以到前30。 总结: 犯了一个错误1e9的长度当成了9 nex数组初始值nex0=-1,这个不太熟练,浪费了几分钟
阅读全文
摘要:这场A不会B读不懂E写不出来,其他题都比较简单。一开场15分钟A不掉A题,转头看B题,30分钟左右放弃了,读不懂题。开始开C题,一发A,然后开D题,贪心完之后匆匆交题,有点担心不一定会A,也是一发A。E题想出正解之后开始写,写了20mins wa了两发,剩下30mins开F,F并没有在时限内写完。
阅读全文

浙公网安备 33010602011771号