【总结】BJOI2018游记

2018年北京省队选拔比赛总结

北京冬令营

冬令营的题是杜教出的,难度很大。我首先花了半个小时理解了一下题意,三道题的规则看起来都很类似,并且难度都很难。既然看不出难度顺序那就按部就班从第一题开始思考。

第一题是给出现有方案问最小改变几步即可让现有方案合法。我首先看了一眼部分分,还是有一些可以拿到的。我先试着自己出了几组小数据,了解了一下题目,尝试着先总结出一些规律,但是确实这一题没有任何规律可言。既然找不出规律那就先写暴力吧,看看后两题之后还有没有时间推敲一下正解。暴力已经打好了,样例调了半个小时,可是确实复杂度太高了,真的是n*m的n*m次方的广搜,但是得分太少了,我准备拿一些部分分再去看后两题,于是我写了一个特殊数据暴力就去看第二题了。

第二题是让你直接构造一组方案,并且合法性判断由加法变为异或了。拿到这题后真的是除了最暴力的暴力一点头绪也没有,打了一个暴力走去第三题了。

第三题是让你求出类似总方案数的值,此时还有一个半小时就结束了,而且这一题的暴力貌似非常好打,于是先把暴力打上,样例过了,然后尝试想正解。这种难度的考试要是A了一道题立马就能前几名了。但是杜教的题哪能这么简单让你A?我耗尽了时间也没能想出一点靠谱的方法,查了查文件名就只好交卷了。

结果我有点记不清了,好像是我拿了两个暴力分,一共30分,也就二十来名吧,省选努力A点题吧。

省选一试

抱着A题的信心步入赛场。

拿到题后立马看到了第三题,树上路径求和,打了多年树剖板子的我立马花了半个小时就打好了,样例一次就过了。心想这肯定正解了啊,复杂度肯定O能过啊,于是写了暴力和对拍保证了正确性后开始攻战前两题。

第一题是给你一个二进制的串,每次两个操作,修改某一位的值和查询一段区间有多少子串在重新排列后是三的倍数。我一想这重新排列其实有关的就是0和1的个数问题,马上打了个表把规律找出来了,那怎么利用规律呢,想到了n三次方预处理,那就是暴力分啊,于是赶紧了一下每次修改O1,每次查询On,总共复杂度n平方级别的,足够拿到前百分之五十的点了,那今天就已经有了150分了。处理完第一题已经过去两个小时了。

第二题是图染色问题,找了一个小时的规律,实在是找不到,于是打了一个最暴力的暴力,期望得分20分。

还有一个多小时,突然想到第一题带修改,查询,那么莫队应该可行!于是我立马开始思考这道题的莫队应当怎么实现。眼看着这题马上就能A了,但是我还是在处理一个细节时发生了问题。原来是变量定义的问题,我应当定义别的意义的变量。修改后开始调样例,调了一个半小时没调过!我这才发现莫队算法在这题的实现上有着致命的漏洞,有一些值是没有办法维护的,我只能放弃了写了一个多小时的莫队算法,交了50分的n平方算法。期望得分有170分。

吃饭时突然想到,第三题貌似树剖是nlogn的,我套的树状数组也带着一个logn,总体下来有nlog方n,最大的点三十万,再乘上题目里的常数可能会T!同学最后算了log方理论上是能过的,但是我蠢了,明明可以O1前缀和维护的,我却没看见没有修改操作而写了一个logn树状数组,当时还想着我还可以把树剖套的线段树改成树状数组常数可能小,简直是有点蠢了。

最后结果下来时,我看到我第三题其实是A了的,这我才放心了。但是下一秒,我看见了第一题的0分,我立马就悲剧了,讲题是我才明白这题细节贼多,而我考虑到的只差了一个细节,正好样例还不包含这个细节,一下50分变0分,悲剧了。第二题也因为图的染色细节丢了第二个点的暴力分,只得到了10分,讲题时说这道题部分分使用特判写的,也是贼恶心,正解也是贼恶心。省选一试就拿了110分,三十名。只有明天A道题来翻盘了。

省选二试

A题说的容易,做出来是真正困难。

拿到题后我惊奇地发现第一题是一道提交答案题!提交答案题非正解就是比谁更能手玩数据了呗。再一看题面,是一道纯种智商题,题意就是两个人猜数,裁判生成两个数,把两个数的积告诉A,和告诉B。A和B只要说了几次不知道就能猜出这两个数。让你出两个数,能让A和B说出指定次数的不知道。看完题我就有想法了,这不就是乘积和和有几种拆分的问题嘛。可惜这题思维含量太高了,我低估了这道题。A和B的思维是互相影响的,就是说A必须要猜到B的想法,而B也要根据A的回答脑补一堆情况。两层我就已经快要想不明白了,最大的层数有15层,那岂不是得和出题人心有灵犀才能A掉这道题啊?于是我把我认为的两层的解打出来了,之后就去看第二题了。

第二题是一道数据结构题,就是给你一条链,每次两种操作,把u到v的路径上的值都加上d和查询长度为l到r的路径的和的和。一开始我想用线段树维护维护,但是这个想法立马就被我否决了,每个点对于l到r的加权不一致,且每次询问的l,r也都不尽相同。要是真用线段树维护,那也得建n个线段树,空间时间保准爆炸。于是我先打了加了预处理每个点对于每个长度的加权,最后查询时On处理,总复杂度n平方,能拿到40分。我先去看看第三题。

第三题是一道期望题,期望题我做的不是很多,处理方法也只是略知一二。我开始研究这道题的概率DP方程。经过一个小时的奋战,成功推出了式子。既然推出了式子就可以尝试A掉这道题了,于是我开始展开这个式子,突然发现fn是关于fn+1到f0的,就是这些式子之间不能用递推来算f值。我又突然落入迷茫之中,既然无法递推这个式子,那么我不但写不了正解,连暴力都很难打出。我一直在想这道题暴力应该如何打,但就是因为这些式子互相影响,就算记忆化搜索也是无限递归下去的。但是这道题总不能不做,我开始对n小于等于3的数据每一组进行手动计算,也就2*2*3*3=36种。大概算到五六种时,突然发现我这就是在浪费时间!真正要算完全部36种结果两个小时也不为过,我急忙写了一些特判就关掉了第三题。我应当考虑如何在我现有的水平下拿到更多的分。于是距离结束还有一个小时的时候,我又重新关注了第二题的大数据部分分。其中确实有一些简单就能拿到的部分分,拿了大约10分左右的部分分,检查了文件名就交卷了。

第一题智商题我明显对于某些情况讨论错误,40分两层的分数中我只拿到了12分,而第二题是最坑的,由于是一条链,我就直接拿线性结构直接维护了。但是路径上的两个端点可能是逆序的,你需要swap一下即可拿到40分。于是第二题我只拿到了特殊数据的5分,只能说在今后的学习与竞赛过程中再长点记性吧。第三题我的特判就是完全失败了,屈辱爆0。讲题时我才知道这一类期望题的暴力是可以拿高斯消元法来解式子的,只能说我还是太年轻了。

总结

其实这次省选我的联赛分数并不突出,再加上缺乏对于真正难题的思考,这次省选我就屈辱滚粗了。希望在2018年还是要多刷题,见识多了,做题的方法才能显现出来。下次联赛和省选还是努力吧,争取明年光荣进队而不是屈辱滚粗吧。

转载于:https://www.cnblogs.com/yczddgj/p/8876862.html

你可能感兴趣的:(【总结】BJOI2018游记)