NOI冲刺模拟赛总结柱(持续更新)
20210505
T1、T2没来得及订正。
T3是一个广义矩阵乘法,具体的相关证明及推导在OneNote上。
T4是容斥原理,注意正难则反思想的妙用。极其详细的题解在这里。
T5点分治,一般来说路径计数问题要想到点分治。
一定要注意骗分!骗分!骗分!今天T1骗分能骗50分,没有拿到,亏得很,要不就rank1爽一把了!
20210509
今天的模拟赛三道概率与期望,把我整蒙了。概率期望这块我就不开窍,老是把简单问题复杂化,很简单的转化我都想不出来。
T1状压DP,想出来转移方程和状态设计后就很简单,但就是想不到。题解在这里。
T2线段树合并+树形DP。实际上是用线段树合并来优化树形DP。DP方程我在考场上想到了,也差不多想到用线段树来优化,但由于之前没做过线段树合并的题目,所以没想出正解。题解在这里。
T3没看。
20210510
今天的模拟赛更加离谱,除了暴力分根本做不出来。
T1线段树乱搞。题解在这里。
T2是一个点分治+FFT。但是我不会 FFT,不用 FFT 可以拿到60分。
T3是一个网络流,需要一个小结论。
20210512
今天模拟赛翻身了,rk1爽了一把!
上来先看题,T1没看见那个数据范围 \(c\leq 10^{18}\),突然觉得这题怎么这么简单?然后才看见了数据范围,大得把我吓傻了。想了想觉得应该是树上启发式合并,但是感觉细节实在太多。就写了30分的暴力走人。题解在这里。
T2看完题目之后也觉得挺简单,但是仔细一想,突然发现好像无法避免算重的情况。实在不会,就写了10分走人。
看到T3,想到了 \(O(n^2)\) 的做法,先拿到了30分,然后看到有20分的数据是随机生成的,感觉随机生成的数据中出现次数大于1的子串应该不会有多长,于是就强制把长度限制到200,交了一发,没想到有80分!题解在这里。
这件事就告诉我们,在考场上一定不能轻言放弃,想到任何idea不管怎么样,一定要写出来,没准有奇迹发生呢?
20210526
今天的模拟赛又舒服了一把。(尽管不是那么的痛快,因为其他人均有严重失误,而我没有。)
T1类似斯特林数,只不过是把斯特林数放在了树上。其实我在考场上想到了60分的做法,但是没敢写。。。以后如果有思路,在经过简单验证以后一定要敢于付出实践。不能存在惰性。题解在这里。
T2数论题。需要推出结论后才能继续。我在考场上用了prufer序的一些知识推出了结论!真不错!
T3不会。
T1的启示还挺大的,启发我们不仅要从下向上考虑树形DP,也要从上向下考虑DP。
20210530
今天的模拟赛非常地亏。本来能A两道题,但是由于T2没有对拍,导致100分变成了可怜的23分。
比赛的经过是这样的。首先把第一题A了,然后觉得T2可做,就想了想,居然想出了正解。打完之后,过完了所有的大样例。本来计划对拍的,但是妄想拿更多的分,就去看第三题了。匆匆忙忙的打完了第三题的5分。结果T2有一个数组没清空,100分变成了23分;T3快速幂打错了,5分也打了水漂。
这给了我很大的教训,以后做题千万不能捡了芝麻、丢了西瓜。不要管别人做了多少分,自己保证自己能拿到得分一定要拿上就行了。
T1是个套路题,数论分块+线段树+离线处理
T2有点思维,最小表示法+循环节+置换+中国剩余定理
T3是个Trie树,需要证明一个结论才行。注意牢记亦或的本质是“相同”和“不同”这个性质。
20210604
额,今天模拟赛非常自闭。
上来先想的是第二题,以为一个区间的最大值在经过区间整体取“与”后仍然是最大值。于是就开开心心的打了分块。打完之后才发现打假了。
赶快打暴力,解决了三道题的暴力分之后,决心想一想能不能挣到更高的分数。
还是先看第二题,又思考了很长时间,无果。于是看T1,觉得链的部分分可以骗一骗。
最后如愿以偿,骗到了20分。最终得分:40+20+10=70分。张教练说,去年的省队成员有AK的,听说后非常自闭。😞
T1点分治,运用了超级钢琴🎹的思路。以前没做过这道题,看了题解之后觉得这是一个非常经典的思路。以后一定要多加注意!😉
T2也非常妙😀 。用线段树维护,最核心的优化是,如果当前区间与/或对整个区间的影响是一定的,那么可以直接打懒标记并且返回。可以证明这样的复杂度是正确的。
T3就更妙了。它利用了行列式的一个优秀的性质:遍历所有的排列,而且我们又可以在 \(O(n^3)\) 的时间内求出行列式的值。以后遇到遍历所有排列的情况,就要想到行列式。极其详细的题解在这里。
20210615
《庆 翻 身》!
虽然拿了rk1,但是有点不光彩,毕竟我三道题都打的暴力,但是比赛时JYH奆佬和CSS巨佬场切了T1。
这场比赛心态还是比较稳的,上来先打了T1的45分暴力,大力状压DP即可。然后开始看T2,觉得不怎么可做,于是看我比较“擅长”的树上问题。(其实也不擅长,就是树上问题比较直观一点。)突然发现一小部分分可以打DP,搞了搞发现有一个点的数据是随机的,又把这档分拿下。
回过头来看T2,突然灵光一现😲,想到一个 \(O(n^2\log n)\) 的做法。但是不太好打,先写一个 \(O(n^3)\) 的做法,又调整一下,成功变成 \(O(n^2\log n)\)。
最终分数:45+48+28,所有的暴力分全部拿到。
T1是一个状压DP,这种DP是将操作进行状压,之前没有见过。题解在这里。
T2是性质+单调栈+线段树,代码非常难写,细节超级多。不过二维的这种题的一个特性就是细节巨多,搞得人很头疼。
T3不会。。。
20210616
又是一场比较自闭的模拟赛。其实说实话,自闭习惯了也是好事,前些日子在比赛中中运气好还能A一两道题,这两天的比赛就只能看看题,想一想,然后默默地打暴力。💔
读完题后一直在想T2,把暴力写完后觉得有可能是高阶差分,还自信地觉得很靠谱,于是就决心莽一把。直到做好了打正解的所有准备后,才发现如果要用高阶差分,必须保证 \(a_i\) 相同。所以呢?所以就凉了呗。
不过说良心话,出题人应该要加一个部分分就是 \(a_i\) 相同。(不会做题的气话)
赶快回过头来做T1,一路暴力打到55分。本来想打T3,但是读完题后觉得连暴力都不会打,于是就果断放弃。
后来才知道T1如果用 unordered_map
的话常数会非常小。而且最终也没有把T1的55分全部拿到,原因是数组开的不够大。T2也没有达到大众分,以后还是要多打剪枝。(尤其是这种数据梯度很多的题)
觉得最近到了一个非常严重的疲惫期,就是想不出来有价值的思路,有时甚至懒得去更深层次的思考。不知道是没休息好的缘故,还是其他的原因。不过对于这种有难度的考试,我个人认为,与其去思考正解,不如上来就先考虑暴力,一步一步将自己的暴力优化。
T1是一个分治,用笛卡尔树分治会很快乐,但是如果用官方题解的思路会卡常卡到自闭。(我从下午两点卡到晚上九点,没有卡出来)
T2涉及FFT,但是好像大力卡常的话 \(O(n^2)\) 能A掉。
T3是一个结论+数学题,ZYZ在考试中打表发现规律了,我其实特别好奇他是如何有勇气去打这种看似一点也不像找规律的题的表的。
20210617
怕什么来什么,终于,我在比赛中打了一次倒一。😢
其实这次倒一也没有什么可以意外的。最近的状态与日俱减,已经让我预感到要有这一天的到来。只不过它来的还是太过突然,导致比赛结束后我还在一机房呆呆的盯着屏幕。改了改我犯了的错误,分数涨到了80多分。但是,第一,这不是比赛的真实成绩;第二,其实80多分仍不能让我满意,毕竟有三位同学A掉了T1,而我居然只拿了可怜的10分。
有什么经验和问题可以总结的呢?
- 一定要去敢于寻找规律,敢于思考正解。最近陷入了一个非常奇怪的情况,就是我觉得我能够接近正解的题,往往难度都非常高;而我觉得丝毫不可做的题,往往是大家分数都非常高的题。简而言之,我无法准确地评估一道题的难度。所以导致很多老师的同学都认为我只会打暴力,其实我真得仔细地思考了正解,只不过在大多情况下都是假的,而且往往都是直到我快打完代码的时候才发现。
- 无论什么部分分都要对拍。这也是我非常困惑的一个地方,如果我每个地方都对拍,就会浪费很多时间;但是如果我不对拍,就会落得今天的下场,几乎所有的分都没有拿到。
唉,真的是越来越难受了。我每场考试都会陷入到底是打正解还是打暴力的困惑中。如果打暴力,往往时间就会不够,或者是思维已经停留在暴力,不能够再进一步;如果打正解,往往都是假算法。希望在以后的模拟赛中能一点一点解决这些问题。
T1是一个简单的组合题。其实等到我看了题解之后,我觉得这道题完全就是一道高中数学范围内的题目。挖掘题目性质还是这类题的共同点。
T2科技+套路题。主要用到了“吉司机线段树”这个数据结构。其实会了这个数据结构,这道题就是个板子题。
T3脑洞题。2-SAT问题。但是这道题的2-SAT隐藏得很深。不像我以前做过的题,有很明显的“元素不是满足某一个性质,就必须满足另一个性质”这样的标志。
希望这次比赛能成为我的一个转折点吧!💪👊✊
20210620
今天的比赛还好吧。
看完题后感觉 T1 很可做,于是就想了一个小时,觉得很可能是网络流,并想出了大致的建图方式,但是很可惜,我不会处理这种情况:
比如我们把一个点拆成黑点和白点,那么究竟怎么才能通过限制,使得流要么经过白点,要么经过黑点?
比赛完后问了一下 Robert_JYH,他说好像需要一个二进制分组的优化,我不是很懂。
然后 T1 就凉了呗。于是开 T2,上来就想出了 25 分的 DP。再往下想,发现 DP 式子满足决策单调性,于是就打了 50 分的决策单调性优化 DP。最后发现瓶颈在于求 cost 函数,突然发现如果 CDQ 分治套整体二分似乎能解决这个问题。于是最终的复杂度为 \(O(n\log^3 n)\),看起来就很恐怖,但是的确通过了这道题。
T3 想了一会,还是不太会,尝试把 T3 往解析几何上转化,但是没有成功。于是就交了一个 \(O(n^2)\) 的暴力上去,本来没指望有分,但是最后居然还有 50 分。
T3 是一个奇奇怪怪的哈希。以后如果遇到像这种是否存在的问题,要向平衡算法复杂度的方面思考。
20210630
今天的比赛感觉还好。
今天的题目都挺奇怪的,T1 是一个超级 NB 的三维几何题目。T2 感觉可做。T3 看完题后直接放弃。
然后开始莽 T2。写完 30pts 的暴力之后,开始想另外 25pts。想出来一个非常鬼畜的做法,打完之后发现跑得太慢。(后来想了一下,其实这个做法的复杂度甚至有可能比暴力还慢。)无意中测了一下暴力,发现暴力本来就可以跑过去另外的 25pts。😱
然后开始想 T1,发现 \(N_y=3\) 的情况是可以想象出来的。但是发现不会求体积。
后来的时间就一直在想 T2。无果。
T1 是一个挺好的思维题。需要用到梯形体的体积公式,当然直接积分也可以。题解在这里。
T2 用吉司机线段树非常好写。正解是一个分块,我觉得不如吉司机线段树优秀。题解在这里。
T3 不会。
20210701
今天的比赛打的比较稳。拿到了 rk2。
看完题后觉得 T1 和 T2 都非常可做。首先觉得 T2 的链的情况可以用组合数推一推。没想到推出了一个非常简洁的公式。23 pts 到手。
转战 T1。感觉 \(n\leq 1000\) 和 \(n\leq 5000\) 没什么区别啊。打了一个 \(O(n^2)\) 的暴力,26pts 到手。
又觉得 T1 的 \(k=n\) 的情况很好做。写了一个换根 DP。12pts 到手。
莽完 T3 的暴力,17pts 到手。
回来看 T2。\(1\leq n\leq 15\) 的部分,写了一个状压 DP。21pts 到手。
零零碎碎加起来,一共拿了 99pts。
T1 是一个数据结构题,我觉得这道题按理说应该挺简单的,以后遇到类似的不能不回了😤!题解在这里。
T2 是一个超级恶心的树形 DP,题解在这里。
T3 不会做。
20210707
今天的比赛也打得比较稳。拿到了 rk2。
看完题后先打暴力,很快将 T2 的暴力打完,拿到了 60pts,然后把 T1 的暴力打完,拿到了 30pts。
然后仔细地想了想 T1,发现我好像想出了正解?
于是一阵猛敲,过了对拍。
开始刚 T2,想了很长时间也没想出正解,于是看到有 \(l_i=1\) 的部分分,就写了一波,过了对拍。
T3 是根本不会的图计数。全场就 Robert_JYH 一个人——不对,一个神——有分。
最后考完试发现,T2 的 \(l_i=1\) 的部分分没有拿上,原因是对拍时的数据生成器总保证了编号大的节点向编号小的节点连边。以后要注意这个问题。
T1 就是个普通的思维题。
T2 树上启发式合并 + 树链剖分。题解在这里。
T3 图计数,我不会 FFT,只订正了 64pts。题解在这里。
20210713
今天的比赛打的也很稳。感觉自从采取了比较稳健的比赛策略之后,比赛几乎没有遇到心态爆炸的时候。
开场先将 T2、T3 的基础暴力切掉。然后转战 T1。
T1 感觉指数级别的做法的部分分有些少,而且可能不能给正解启发,于是考虑先想 \(O(n^2)\) 的做法。手玩了玩样例,觉得很可以做,而且觉得正解可能就是把暴力每次 DFS 整棵树改成换根 DP。
于是就先打暴力,过掉之后再打正解,拍了拍觉得没什么问题。
后来一直再想 T2 的另外 20 分部分分。但是没有结果,没有意识到这是一道很经典的模拟费用流。
T1 普通的换根 DP。
T2 需要用到可持久化平衡树,没有订出来。
T3 是个很有趣的题目。考虑把所有的点向不同方向投影。这是个很新颖的思路
20210715
今天的模拟赛打的非常不好,就是因为没有贯彻“无论如何,先打暴力”的原则,导致心态很慌。
上来就发现 T2 和子串有关,肯定是后缀自动机。然后就想了三个小时发现想到了假算法,然后就心态很慌。本来 T2 和 T3 各有 30 分,但是 T3 由于乘法没有开 long long 挂成了 10 分。
T1 是一个比较正常的单调性的二维矩阵问题。
T2 的后缀自动机非常的妙。
T3 目前还不会。
20210716
今天的模拟赛尽管采用了先打暴力的比赛策略,但是由于自己太菜,没有拿到除了暴力分之外的任何分数。(不过我感觉这是水平问题,并不是人为能控制的。)
看完题后就觉得今天三道题都十分的不可做。所以就下定决心打好暴力,结果整个想下来也没发现有什么比较值的暴力分。打完那些基础暴力分之后拿到了 59 分、65 名的差成绩。
zhouyixian 大师硬生生地将 T1 的规律看了出来。后来听讲的时候发现 T1 需要用到生成函数的相关知识,但是他就凭着找规律的本领将 T1 过掉了。以后也要学习 zhouyixian 这种狠下心来找规律的精神!
20210717
今天的模拟赛感觉良好。
首先上来就看出了 T1 的端倪,然后一个小时将 T1 切掉,感觉爽爆了。
然后高兴的事情还没完。T3 如果用裸的斯特林数加组合数可以拿到 50 分,然后 T2 再交一个 30 分的暴力。最终拿到了 180 分的好成绩。
但是高兴地有点太早。出了成绩后才发现排在 50 名。诶,没办法,选手的实力都太强了。
值得总结的是 T2,这种扫描左端点,维护每个右端点的答案的思路非常管用。
T3 学了一下 70 分怎么做,顺便复习了一下 FFT 和 NTT。
20210718
庆翻身!
今天的模拟赛,我居然考了第 23 名,有史以来的最好一次。
上来把所有暴力都打完之后,一度陷入绝望,觉得没有任何其他的分数可以拿到。
但是就是在最后一个小时,我突然想到昨天的 T2,灵感突现,然后就写出了今天 T2 的 \(O(n\log^2 n)\) 的做法。拿到了 50 分。
后来我 T2 也优化到了 \(O(n\log n)\) 的时间复杂度,但是可惜出题人过于毒瘤,卡常卡不过去。
20210719
今天的模拟赛打得还不错。第一题上来就发现了它的端倪,想都不想直接上平衡树,打了近两个小时,调了过去,过了对拍,自信地交了上去。但是最后评测的时候被卡常了,只得到了 80 分。后来出题的老师说要延长时限到 2s,我就过了。
然后看 T2,发现用裸的最大流至少可以拿到 44 分的好成绩,于是就打了一把。但是最后评测的时候却发现得到了 68 分,感觉非常不错。
T3 实在是不会做。
其实 NOI 是不会遇到像今天 T1 这样简单的题目的,所以不能骄傲,继续稳扎稳打,加油!