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,之后发现当前元素的第一维不等于指针指向的元素,就把指针跳到当前元素,把当前元素前面的加入树状数组。可以少一些分类讨论。

posted @ 2022-03-13 14:44  Displace  阅读(82)  评论(0)    收藏  举报