2022.03.13省选模拟赛总结
1.时间安排
7:30~7:50
T1: dp题,只会暴力10分。
T2:树上问题,似乎50分可做。
T3:数据结构题,暴力25分,A=0似乎可做。
7:50~8:30
T1的合法状态量在n=4只有800左右,一发大力状压试着水10分。
T3怕n^3过不去瞎写了个cdq分治二维偏序,对A=0发现需要类似动态维护数点的东西不会搞,放弃。
8:30~10:30
好容易搞清原体面啥意思,发现50分似乎不难,直接写了\(n^2\)的预处理,样例没问题。
但是一会发通知T2题面有误,就很懵。新题意和原来相差很大(样例真水……)。
但是问题不大,多加了几个预处理数组好了。
10:30~13:00
虽然又延时了一个小时,但是没什么思路,摆烂。
result:
T1:0 T2:50 T3:0
2.反思
T1:
正解结论题,按照推出的结论大模拟即可。
T2:
50分签到分拿到了,100分是吉司机线段树,再说吧……
T3:
瞎写树状数组签到25分……
100分计算几何就不说了……
50分也是用的树状数组,提前把每个位置的答案的前缀和和后缀和算出来,按B的正负性二分出位置后直接输出就好了。
思路卡在一直想怎么样用cdq分治或奇怪的动态数据结构解决,忘了树状数组就能预处理了……
3.简要题解
T1:
一句话题意:给定两个长度为2*n+1只含'A','B','C','?'的字符串,问把'?'填上三种字符后LCS=n的方案数,T组询问。
\(n\leq 1e6,T\leq 1000\)
发现只有两种形式的一对字符串合法。
1: AAA*A->BCBCBCB *可以填B或C。
2: ACA……BCB->BCB……ACA 即第一个串的前缀和第二个串的后缀相同。
大力分类讨论,ABC三种字符分六种情况计算,统计'?'个数计算方案。
第一类情况要分两个方面(即第一个与第二个和第二个与第一个的对应关系)讨论,所以有重复,减掉就好。
T2:
题意:给定一棵根为1的树,每个节点有一个编号,每次询问给出l,r,求有多少\(l\leq L\leq R \leq r\)的L,R二元组满足所有节点编号在L,R之内的节点的lca的节点编号也在L,R之内。
50分:(\(n,m\leq 3000\))
预处理一段区间内两两lca节点编号的最大值和最小值,然后二维循环枚举所有的单个区间判断是否合法,再做一遍子区间和。
用O(nlog)的预处理lca就可以做到\(O(n^2)\)的复杂度。
T3:
题意:给出n个点,每次询问给定A,B,C三个参数,求有多少点对满足\(Ax_i+By_i+C>0,Ax_j+By_j+C>0,x_i<x_j,y_i<y_j\)。
\(n,m\leq 2e5\)
25分:(\(n,m\leq 1000\))
直接对所有满足前两个条件的点用树状数组二维偏序。
25分:(\(A=0\))
发现前两个限制只和y有关,按y从小到大排序,预处理前缀二维偏序的答案和后缀的答案。
每次询问二分,b<0尽量大,回答前缀和;b>0尽量小,回答后缀和。
4.总结
1.心态
今天完全是被心态耽误的一天……
昨天ABC打炸,上一周模拟赛场场挂分,心态真的很不好。
但是没办法。自己摆烂,吃亏的只有自己,不会对别人产生任何影响,只会影响到自己的发挥。
何必和自己赌气呢。之前没考好,那就过去呗,总结反思一下,之后注意就好了,不至于emo一整天。
少数人是一帆风顺的,所以经历风浪是正常的。就算经历了太多,已经没有继续前行的欲望,也不能白废了之前的努力啊。
这不过才是学习上的小浪,没有必要把自己彻底否定,更没有必要做伤士气的事。
希望能调整好心态吧……至少坚持到2022省选……
2.二维偏序问题
cdq分治、树状数组都是常用的算法。时间复杂度都是O(nlog)
但是对我个人来说还是树状数组更直观一点,而且cdq分治在加不加等号上总是搞不清(就像今天),树状数组更为保险。
今天发现了树状数组二维偏序一个比较妙的写法:按照一维排序后,开一个指针指向1,之后发现当前元素的第一维不等于指针指向的元素,就把指针跳到当前元素,把当前元素前面的加入树状数组。可以少一些分类讨论。

浙公网安备 33010602011771号