ZROI模拟赛总结

NOIP10连+CSP7连+NOIP20连

场次 期望得分 实际得分 ZR排名 校内排名
8.31 25noip十连测day1 100+100+0+100=300pts 100+100+0+0=200pts rk84 rk4
9.6 25csp七连测day1 100+100+100+60=360pts 100+60+90+60=310pts rk12 rk2
9.7 25noip十连测day2 100+100+45+0=245pts 100+100+45+0=245pts rk28 rk3
9.13 25csp七连测day2 0+100+10+30=140pts 0+90+10+30=130pts rk83 rk
9.14 25noip十连测day3 100+60+10+0=170pts 100+60+10+0=170pts rk52 rk2
9.20 25csp七连测day3 100+100+100+35=335pts 90+100+100+35=325pts rk12 rk4
9.21 25noip十连测day4 100+30+0+40=170pts 100+30+0+40=170pts rk102 rk5
9.29 25csp七连测day4 100+100+100+?=3??pts 100+100+100+8=308pts rk10 rk1
9.11 25csp七连测day5 100+100+15+0=215pts 100+50+15+0=165pts rk13 rk2
9.12 25noip十连测day5 100+20+30+0=150pts 100+10+20+0=130pts rk103 rk5
9.13 25noip二十连测day1 100+20+25+10=155pts 90+0+15+10=115pts rk78 rk6
9.14 25noip二十连测day2 100+56+36+36=228pts 100+56+36+36=228pts rk42 rk2
9.15 25noip二十连测day3 100+100+40+0=240pts 100+100+40+0=240pts rk31 rk3
9.16 25noip二十连测day4 100+100+10+8=218pts 100+100+10+8=218pts rk17 rk1
10.18 25csp七连测day6 100+100+100+15=315pts 100+100+100+15=315pts rk16 rk3
10.19 25noip十连测day6 100+25+10+0=135pts 100+25+0+0=125pts rk96 rk5
10.20 25noip二十连测day5 85+100+25+0=210pts 45+100+25+0=170pts rk54 rk1
10.21 25noip二十连测day6 100+88+20+20=228pts 36+88+20+0=144pts rk97 rk5
10.22 25noip二十连测day7 100+100+0+25=225pts 0+100+0+25=125pts rk98 rk4
10.23 25noip二十连测day8 100+100+0+0=200pts 100+100+0+0=200pts rk39 rk2
10.25 25csp七连测day7 100+100+100+0=300pts 100+100+100+0=300pts rk11 rk3
10.26 25noip十连测day7 100+60+25+0=185pts 100+60+25+0=185pts rk73 rk4
10.27 25noip二十连测day9 100+100+100+0=300pts 100+100+100+0=300pts rk41 rk3
10.28 25noip二十连测day10 100+45+25+0=170pts 80+45+0+0=125pts rk63 rk6

警钟

  • 25noip十连测day1,T4KDT数据范围算错了没开long long
  • 25csp七连测day1,所有质数相关的题记得考虑0,1,2是否需要特判
  • 25csp七连测day3,总长到不了循环节就结束了的情况
  • 25noip二十连测day6,清空数组到n+m,RE
  • 25noip二十连测day10,被log2卡精度了,log系列函数返回值是double类型可能会出现精度问题,使用__lg或者 __builtin系列比较保险,builtin系列函数

25noip十连测day1

100+100+0+100=300pts -> 100+100+0+0=200pts

复盘:
T1第一遍读错题了,小修了一下,半小时过
开T2,第一眼没会,读一遍T3T4发现T3完全没啥思路,T4看着还挺能做的
回来T2,发现可以在做最短路的同时状态里记录一下当前最小值,复杂度是 \(O(nmlog)\) 的,但感性理解一下状态不会很多,开写,大概1.5h
开T3,手算感受了一下,发现这玩意我手算怎么没算对啊。。好像要积分一下吗?于是T4了
T4把题读错了。没看明白这是个有向树,孩子和祖先一起修改的情况完全不会做,手玩样例看明白了原来只算子树内,这不是保卫十族吗。于是立马会做 \(O(q \sqrt n \log n)\) 的二进制分组带修KDT,使用厕所大法之后会了可以直接按照最终形态建KDT然后把新加入的点看成一个修改操作,分析了一下需要维护两维限制很难有单log做法,而且时限给4s,根号赢麻了
大概剩1.5h+,在写T4之前意识到其实T2可以跑floyd状物省一个log,犹豫了一下感觉时间来不及还是相信状态很少吧
T4第一遍写完之后意识到做法有锅,大概12:00左右,我会在这个点出现之前对它做操作,一看4.5k代码有点崩溃,平复了两三分钟,修了一下upd方式,维护每个点的激活状态,然后因为把 \(l\) 写成 1 了大样例跑的特别慢,最后10min调出来了
没空写T3,检查一波

总结:
首先不难发现我最开始若干读错题,那么第一心怀敬畏认真审题,第二尽量要手玩样例来感受题目以及验证自己的想法。
T2,在最短路+各种奇怪限制的一类题目中,考虑两种做法,第一能不能增加状态去表示或者叫拆点,第二能不能对路径分段按转折点去维护
T3,场上真完全不知道怎么算,人脑都没算对这个,其实再有一点时间的话应该可以拿个全排列的分数,但正解完全没啥指望,没什么总结思路,作为第一次见的感受题吧
T4,没开long long挂分了。还有一个小锅是query只查询自身的时候没判激活状态。第一遍写完意识到有问题的时候想了一下来着,把update一系列的修完就忘了修query了,而且小样例没强度大样例带性质,完全没check出来这边有问题,解决方案是多用草稿纸,把思路记下来方便回溯和复盘,不要写嗨了就一笔带过的想问题,以及这种大数据结构很需要对拍也很好拍,对拍完全可以解决上述两个问题,但是没时间真没救

25csp七连测day1

100+100+100+60=360pts -> 100+60+90+60=310pts

复盘:
秒T1,20min过
开T2不会,通读题目,感觉都还可做
观察T2大样例,发现答案不会太大,最多好像也只有三个数,但是没有严谨证明,拖了半个多小时不会别的解法,觉得时间差不多要1.5h了而且80保底跑路
手玩T3,发现从后往前从大到小放数,遇到0的位置就优先处理,每放一个数相当于对前缀-1,写完之后发现和std构造不完全一致,checker超级难写而且出题人不下发checker,一气之下去观察大样例构造并看明白了std的构造逻辑,处理没有限制的点的方式不完全一样,于是小修一下代码和大样例fc上,整题耗时1.5h
剩下1hT4,开题巨大多时间啥也不会,胡了一个假做法用若干长为d的线段可交的覆盖整个区间,每个线段的贡献是段内最大值,dp,错的原因是每次区间最值产生贡献,这个数量并不固定,所以分段形态是不固定的。最开始胡出来这个做法发现怎么我会做d小的情况但部分分给的是d大,好怪,扔了,于是只能考虑一层一层的贪心算,每次把所有最大值变成次大值,每一段尽可能多覆盖几个贡献点,最后不到30min才写了这个60pts跑路

总结:

T3卡常90pts
主要问题集中在T2上,没有观察到1e8以上有用的质数只有379个,直接1e8以内筛一下1e8以上记忆化一下就行了,暴力做是对的,没打表导致的,浪费了很多时间,挂的原因是质数没判1
T4后面思考这题的时间完全不够,正解考虑上述dp再加一维现在考虑的值是什么的状态,(和暴力结合一下?),然后拿数据结构去维护dp,注意dp状态和值在维护的时候可以互相映射

9.7 25noip十连测day2

100+100+45+0=245pts -> 100+100+45+0=245pts

复盘:
开场40min无障碍T1T2,感觉打得很赢啊!
看T4感觉完全不会,部分分也不好打,于是冲T3,打表观察性质,会了45pts后再无进展,罚坐大半场遗憾离场

总结:

其实能打的分基本都打满了,真不会T3,到现在不会证明,我真不知道总结啥

9.13 25csp七连测day2

0+100+10+30=140pts -> 0+100+10+30=140pts

复盘:
开场一看T1是什么神秘东西,1h不会,有点玉玉,中间去看了一遍T234,T2T4看起来都还可做,T2有个初步的想法
扔T1开T2,确定了一下细节,直接分讨做就可以了,不到2h过了
T4一眼肯定是bitset,然后发现空间完全爆炸了,进一步考虑怎么去节省一些空间,因为转移有点沾深度的感觉一下子想到了长剖,可以把这个优化成根号的,然后一想长剖写的不熟就先扔了,想了一下重剖,因为前面沾深度的判断扔的很快
于是先给T4扔个bitset上去打暴力,回来T1,错误判断了这题出在这了怎么可能让暴力过去不卡精度(实际上没理解好IEE导致的,精度就是对的90pts),于是一直在想怎么二进制拆位算,盯着分子不会找规律,感觉是弱智。
最后给T3拼10pts,跑路

总结:
T1 被题面骗了,感觉对大模拟自带恐惧,有点影响后面的判断,起码90pts这一步特别特别不应该,认真读一读题目背景或者结合一下常识都能知道/2不会丢精度,过两天找个时间去把CSP2023T3写一下练练我的模拟水平
T2 有一个分讨公共变量直接在循环里用记录解的情况,然后每一步如果判到无解没给它清空。。导致会带一些无解的值出去,挂了10pts
T3 赛时没想到怎么打暴搜挺不应该的,状压,钦定起点枚举公差,然后发现每次能选出来四个点跑的还挺快的,这样才能进一步观察分讨,后面打表也要用到,多一点时间手玩一玩的话还是可以考虑60pts的
T4 竟然没想出来这个题吗??首先上来第一步不知道赛时怎么想的觉得这个东西沾深度,实际上只是一个自下向上的转移状态,和dep没啥关系,那么重剖很对,想到类似dsu的去维护,复用重儿子的数组,轻儿子重新开一个数组转移,儿子跟儿子之间互不影响所以复杂度只跟最多跳log此轻儿子有关,是log的
全真NOIP2024赛时状态模拟吗,那我打的还是好烂,该争取 [90,100]+100+[30,60]+100=[320,360] 的,有好多赛时想到的正确想法被自己叉了啊

9.14 25noip十连测day3

100+60+10+0=170pts -> 100+60+10+0=170pts

复盘:
开场通读题目,T1一个魔改dij,0.5h速通
开T2,怎么又是bitset题,一眼会60pts,想了好久还是不会,拼个60先
T3首先题目八联通即切比雪夫距离,带着max不好做先转成曼哈顿,然后考虑拆成四个象限分讨,分别维护 \(\max (\min) (x+y)((x-y))\) 即可,那么我们只需要维护 \(\max(x+y)\) 然后把坐标轴旋转四次,剩下一个扫描线扫x,数据结构维护y,每次查询一个前缀max,带删除,于是赛时卡这了想出来的维护方式都不太人类,感觉最人类的方式是BIT/ST+set,但是 \(log^2\) , 犹豫再三还是开始动手写,大概还剩1.5h+,调到最后,大概树状数组的删除做的有点问题,扔了一个朴素暴力上去
没空T4了

总结:
T2 完全没有想到鸽巢原理的意识,感觉正常思路应该是意识到规约到可行性背包,除了用bitset做没有更优复杂度,然后想到一定有特殊性质,观察一下数据范围注意到鸽巢原理,但我一直在想优化做法而非性质,大概还是对基本模型掌握不够自信,当个提醒,就像做不出来区间题的时候想想分治一样,做不出来可行性/最优化的时候想想鸽巢/糖水
T3 不是我咋又没切数据结构,离散化的时候不要去重,每个y上只维护一个点,这样就不用set了,可以做到单log

9.20 25csp七连测day3

100+100+100+35=335pts -> 90+100+100+35=325pts

复盘:
开场通读题目,鉴定为123都可做,T1一眼直接模拟循环节前的东西复杂度肯定对,写完一测跑的飞快。
T2首先注意到同一类肯定是先让最外侧两个元素匹配再做里面的,不然贡献肯定不优,于是拆成若干区间,发现相交的区间怎么选都可以,负贡献是消不掉的,包含的区间需要先选大的再选小的,于是直接按区间长度排序数据结构维护哪些位置还剩元素即可,1h结束T1T2
T3首先是个区间单调栈问题,直接线段树维护可以 \(log^2\) 的做,想了一会能不能扫描线做单log,没想出来,于是先双log启动了,写完之后发现挂了。。正好停下来再想想,没调出来挂在哪但是意识到预处理单调栈+询问时二分就可以做到单log了!直接重构,稍微调了调,过。
剩下1h不会T4,随机化也没什么很好的想法,于是先拼了上了暴力和性质的35pts,剩下的时间就慢慢做一些随机化+乱搞

总结:
T1没处理总长<循环节前长度的情况
T3线段树维护单调栈写的不太熟,这周要再去写一下楼房重建
T4天才思维题,首先要把绝对值的贡献拆开,发现这只跟a,b第一位不同的数值有关,于是上trie树考虑,预处理出每个子树内x的每一位填0/1的贡献,在dfs的过程中带着没走的那棵子树的贡献往下递归即可

9.21 25noip十连测day4

100+30+0+40=170pts -> 100+30+0+40=170pts

写在最前,下次模拟赛请不要卡题就死磕摆烂,写不出题最起码也应该把暴力打满,别玉玉!别摆!别摆!!!

复盘:
开场通读题目,感觉是比较人类的场,T1手玩一下发现是gcd,但是咋证,反应半天哦更相减损这不是拍脸上的gcd吗。。。0.5h
开T2,考虑把A顺序排好放在那,然后把B放上去,状态需要额外记录前面剩几个空没填以及当前填了的总和,发现转移的时候不知道当前点填没填,这有后效性啊咋办,不会,换个思路考虑每一个数值作为最大值贡献0/1/2次,然后不会算,做了2h,玉玉,感觉其实就差一点,但一直做不好转移
开T3T4,发现T4有显然可以暴力dp然后决策单调性拿到40pts,还有25pts性质分也不难,先扔了一个分治上去
抉择了一下还是放弃继续拼暴力回来打T2正解,先给T2上了一个全排列暴力,赛时最后20min意识到之前那个当前点填没填根本不存在后效性,直接分讨,费用延后计算即可,急急急,写写写,怎么挂了,急急急
于是最后仍然没做出来T2正解

总结:
这么好的场考的这么烂。
T2大概属于想出来之后就完全觉得卡题很荒谬,为什么会觉得这个东西有后效性做不了呢,还有一种更好想的思路是直接从大到小填数,考虑这一对数的贡献次数即可,犹豫从大往小填所以填到新位置上的数一定是做贡献的
T3主要问题是完全没时间,从特殊性质入手应该还是挺自然的题,知识点也都是比较熟悉的
T4感觉场上顶多也就65pts了,真不会正解
心态真的不太好,没啥敬畏,纯头铁磕T2,对后面的暴力不管不顾的,你应当做好在比赛中做不出T2甚至T1的准备,并在这种情况下稳住把暴力拼上去,不要急不要摆不要玉玉,稳稳的打肯定输不了

9.29 25csp七连测day4

100+100+100+?=3??pts -> 100+100+100+8=308pts

复盘:
命途多舛。
一遍读题一遍下载dev配环境写缺省源用了20min,觉得前三题都还可做,T4第一遍没读懂
T1,中间缺省源里的快读误触多敲了个0,卡了一会,在1h左右结束
开T2,能走的最小步长是gcd,绝对值小肯定取在中位数附近,那预处理排个序询问二分一下不就做完了,写,挂大样例,静态差错好几遍无果,大输出查错,发现有的取整炸了,哦有负数是向0取整,然后继续炸,有点玉玉,重新读了一遍题读了一遍代码,发现数码是 \([0,k]\) 也就是还要对k+1取一遍gcd,改完过样例,2.5h
时间有点不太妙,T3还是数据结构有点慌,认真想了一下这不是直接异或哈希,但是加法冲突概率会不会有点高,出去转一圈,好像可以,写,稍调一下过
还剩半个多小时,准备打打T4暴力,但是我怎么读不懂题,我怎么读了三遍还没读懂题,摆了,骗分跑路,检查一波

总结:
T2花了太长时间,还是理解题意有细节不太对,但是状态还行,有点急但不是太急,设了一个ddl卡着点发现了问题多花了一会把问题改过来了,策略可取
T4说实话我没什么太好的办法,赛后第二天再去看发现我就是完全没读懂题,可能最后半小时有点累了潜意识里就在摆,但最起码应该打个暴力48pts,正解的性质特别厉害,打表分讨,感觉赛时完全观察不到这个

10.21 25noip二十连测day6

100+88+20+20=228pts -> 36+88+20+0=144pts

复盘:
开场读题,T1稍微想一下会,写完之后发现corner case上多测清空需要多清一位,于是直接清到n+m了(伏笔),30min+
T2很快有一个基础DP,盯一下转移把不能相等的条件拆成前后缀max拼一下,然后发现空间2e8炸了,稍微修一下改成记mx和semx,mx不合法的时候直接扔semx上去,十点多开始写,88pts直接跑路
然后一直不会T3不会T4。。。好长好长时间没拿任何分
T3在考虑有没有性质,某些数肯定要扔在一个集合里这样,到最后只拿了二进制枚举的暴力
T4直接手搓字符集只有ab的情况,扔了个以为有20的式子上去,但少讨论了做多次Change All的情况

总结:
挂分挂的最多的场之一。
T1数组越界RE,n+m这种东西写出来场上居然不知道过过脑子吗???
T2的88pts想的太久了,考虑这种只有一个位置不合法的情况,特判一下不就过了,单点处理要什么前后缀
188pts应该1h内写完才对
T2剩下的部分需要观察一点小性质,这个确实手玩少了
T3欸我想的和正解完全不一样,钦定DP顺序的厉害题,考虑朴素DP只能状压才能算新加入的元素的贡献,那么我们有没有方法可以不用状压也能准确得到贡献,于是去考虑一下什么样的数对放在一起是有贡献的,钦定一下转移顺序
T4我悟了我完全少考虑了一种情况啊!考虑字符集AB,但你交换过程中可以引进一个临时的C从而实现swap操作,我完全没考虑到这个。。。

10.22 25noip二十连测day7

100+100+0+25=225pts -> 0+100+0+25=125pts

复盘:
开场读题,感觉T1T2都还挺正常的
然后好困好困好困,持续神游半休眠状态30min
稍微清醒了一点之后开始好好想T1,出去走了一圈回来写了,大概9:40,居然1h才签上到
给T2胡贪心,但是我贪心咋假了!尝试修锅,假,鉴定为不是贪心题,浪费了巨大多时间
考虑换个角度思考,枚举两种操作做多少次去给答案做贡献,好长时间才意识到该做法是 \(O(n)\) 而非 \(O(n^2)\) 的,写完快12:00了
怎么只有1h打暴力,T3一眼没啥好想法,过了,T4先ST表打个暴力,然后b=1e9发现可以做根分,直接冲刺,写了一点发现空间炸掉了,sad
没啥时间,检查了10min

总结:
甚至挂的比昨天更多,气无语了不想说话
感觉像在做梦打模拟赛,所以今天总结第一条是我要早睡。。
T1写的和想的完全不是一个东西啊,这居然还能过大样例,极度不清醒的梦到哪句写哪句,为什么会把特判标记打在if外面???注意如果比赛最后有时间请从头静态查错一遍代码,而不是只去check一下数组大小啊边界啊空间啊这些东西(当然上述要尤其注意),困了多出门溜达溜达(虽然我试过了作用不大,但多少强了eps)
T2多种角度去考虑问题,贪心不会证的时候最好多想一想别冲
T3输在没时间了,第一步转换都没做出来,手玩一下应该不难发现的

10.23 25noip二十连测day8

100+100+0+0=200pts -> 100+100+0+0=200pts

复盘:
T1容易发现必胜的充分条件,想了半天不会证必要,有点蠢感觉,稍微胡了胡1h扔了
T2一眼神秘更相减损术,但是复杂度上限V啊这咋办,乱七八糟想了半天发现实则只有log段,直接压起来重载一个排序函数就好了,剩下按字典序判一判
喜提写挂,这个排序怎么细节这么多啊,上点特判做一做,被T2硬控近3h
于是没时间打暴力,拼个T3纯暴力发现读错题了

总结:
我不好评价这个时间分配
T2有70pts比较好拿,后面暴力拼一拼应该能>30pts的,而且不好说放在考场上我能不能想出来调出来
或许先拿到70然后去做后面的暴力是更好的选择,下周试一下
刚发现我T2是纯正的唐,不用去压01段,直接把辗转相除的值扔进去排序就可以了,代码量少一半

10.25 25csp七连测day7

100+100+100+0=300pts -> 100+100+100+0=300pts

10.26 25noip十连测day7

100+60+25+0=185pts -> 100+60+25+0=185pts

10.27 25noip二十连测day9

100+100+100+0=300pts -> 100+100+100+0=300pts

10.28 25noip二十连测day10

100+45+25+0=170pts -> 80+45+0+0=125pts

复盘:
仍然开场好困,出门溜达溜达,T1反应了好长时间,手玩了一下之后发现倒着选一定优因为负贡献只有1,1h+过了
T2是啥啊,先转化成要么就是正确的值要么^x,只会粗鲁的指数暴力和x=y=0,出门溜达溜达,无果,1h啥也不会啊,先看一下无解咋判吧,好像直接去跟第一行check就可以了,感性理解来回倒一下就能倒过去,证明不会,然后不知道咋办,但是可以改进一版暴力枚举a1然后指数枚举check第一行,这样有45pts,咋2h过去了那直接开始写吧,被清空卡了一下,写完还剩半个多小时
迅速拼拼T3,奇偶分类改变正负转化成区间和=0,枚举开头两个元素可以知道整个序列的贡献,欸这怎么还能挂啊,把转化去了,人眼check了一下大样例开始紧急交题

总结
T1被log2精度击败了,记住了以后再也不敢随便用了
T3最后改代码的时候光改了初始的转化没改修改的,时间太紧导致的,但凡再看一遍代码或者再看一遍大样例呢
T2,其实跟正解只差把这个贡献的式子列出来,然后就会发现式子是一个组合数前缀和直接算就可以了

11.7 25noip二十连测day16

T2,分数规划太不熟了,想了一下没想明白接着就扔了然后胡的假做法,对于想到的任何做法,可以多花一点时间去确认其可行性

posted @ 2025-09-01 16:59  洛苡hh  阅读(30)  评论(0)    收藏  举报