在中考前去省选玩一趟。
对于一个还没有学会所有省选内容的初三Oier来说,这一趟真的是去打酱油的啊。但还是要认真复习。
最近几天在字符串的路上越走越远…晚上才开始复习图论。还有一大堆没有复习啊,怎么办?
明天还要去试机,好像是在南开,但是不知道在重庆具体的哪里。
今天去南开试机(原来南开在沙坪坝那边)。机子是挺不错的,就是键盘摆的位置有点不是那么舒服。当时竟然没有开网,打了一个FFT和主席树,都不知道对了没。不过南开的环境倒是挺不错的,满眼望去都是绿意盎然(很适合放松眼睛)。
打完两个模板后就直接回去了。晚上回去复习了以下图论,然后就睡觉了(计算几何一点没复习,一点都不慌)。加油吧!
密码是什么早已忘记,不过今天发的是一个汉堡,感觉还可以。
先花了10分钟左右的时间把整个pdf看完了,有异或最大和,有字符串(感觉字符串是每年必考点啊),最神奇的是还有一道特殊的题(虽然也是传统题),将所有的输入输出数据都发下来给你,让你用不超过100kb的代码将其完成(据说跟消失的题面出题人是同一个出题人,毒瘤完集训队队员又来毒瘤省选OIer)。
T1,异或粽子(不怎么喜欢吃粽子的人)。与异或有关的无非就两种,要么线性基要么01Trie。显然区间最大异或和只可能是01Trie。先不管,打个60分的暴力再说。然后想正解。一开始想的是用普通的01Trie去维护一个前缀异或和,对于每一个位置,找到在它之前的,异或它的前缀异或最大的值,然后丢进大根堆里,再取出前k大的值。然后发现小样例能过,大样例过不了。然后手造了一组数据后发现,k可以大于n。于是就想如何找出再它前面的且异或它最大的之后将其删掉。就这样想,始终想不到可持久化Trie上。最终就只有暴力分了。
T2,字符串问题。字符串无非就这么几种算法,SA,SAM,…不管,先把暴力写出来。本来想的是用SA去判断串b是否为a的前缀,由于SA没有背得特别熟,结果只是这里就卡了不下10分钟,然而最后是把j写成了i,还有就是数组没有清完。看来那句话很有用啊。
数据千万条,清空第一条。
多测不清空,爆零两行泪。
以后对于多组数据,数组一定全清空!就这样原本的暴力分40分就这样没了。。。
T3,骗分过样例(消失的题面数论专题)。之前看过消失的题面,一样的是看数据猜题意。
第一种数据1_998244353
,看输入数据,第一行改组数据的类型,这就不说了。第二行空行,第三行100000
,一看就是数据组数。接下来才是重头戏,输入0
时输出1
,输入1
时输出19
,输入2
时输出361
…初步猜想是 1 9 x 19^x 19x,用计算器算了以下,接下来几个都符合这个规律。然后找模数,1_998244353
,嗯…998244353
,这就是个素数,模数难道就是这个?写完后来测了测,发现就是这个完全没问题。好的,看第2组数据,快速幂还能应对。第3组数据,这是什么鬼?!输入long long
都存不下。有一想998244353
不是素数吗?可以用欧拉定理的推论:
a b ≡ a b   mod   φ ( p )   mod   p a^b\equiv a^{b\,\text{mod}\,\varphi(p)}\,\text{mod}\,p ab≡abmodφ(p)modp
可以对输入数据边读入边取模,这样就不会炸了。好的,12分到手。
第二种数据1?
,结合前面的经验,?
应该是模数,但是不确定。虽然可以暴力去找,但觉得太麻烦,包括下一种数据都没有去找。
第三种数据1?+
,同样也是模数不确定,但是数据范围大了,就不能暴力去找。
第四种数据1wa_998244353
,同样结合前面,模数确定但是wa
了。再结合数据和提示(对int
的算术溢出)可以联想到应该是用了int
做乘法,然后就溢出得到的结果。但是没想到的是竟然是只能用朴素的乘法。下一个数据范围大了,据下午的讲题,好像是去找循环节,然后由于生日悖论保证时间复杂度…记不清了,反正是一种玄学方法。到此为止,1
开头的数据种类就结束了。
第五种数据2p
,看不懂。看数据2 10
,输出pp.p.p...
,于是盲猜应该判断自然数区间[2,10]
的数是否具有某种特征。数了数,发现2,3,4,5,6,7,8,9,10
中只有2,3,5,7
有一个p
的标记。共同性质?只有都是质数了吧。顺着这个思路往下想,发现下面几组数据都是一样的,再加之p
是质数英文prime
的开头字母,基本就确定了结论。于是开始着手打线性筛。看下面几组数据,又是那么大的范围(其实没有那么大,只是数字大了点而已 r − l r-l r−l比较小,但还是没看出来),果断放弃接下来的数据点。
第六种数据2u
,结合前面的质数和输出的+-0
,马上就想到了莫比乌斯函数 μ ( x ) \mu(x) μ(x),因为只有它有+-0
三种取值。写完线筛后直接放弃后面几个大的数据点。
第七种数据2g
,第八种数据2g?
,根据前面的经验,加之输入的三个数l r p
,可以确定是判断自然数[l,r]
是否有模p
的原根,但是不会啊!果断放弃。
想知道以后省选会不会有交互题。
据说T3出题人写了300+的代码,应该Day2码量会比较小吧(flag)。
下午就直接出成绩了,有点慌。结果下来81=60+0+21。
T2果然炸了。。。反正只是来试水的,不奢望进队。Day2再加油吧!
晚上会去复习了一会儿Dp,就早早睡觉了。
一大早的在学校附近不知道转了多少圈,就是找不到路。虽然最终还是找到了路,但是心更加慌了。
同样花了10分钟左右看了看整个pdf,T1皮配,与去年劈配有异曲同工之妙,虽然与匹配没有任何关系,后两道背景好评,以流浪地球为背景,春节十二响(好像出题人一开始想取名为清明十二响。。。)与希望。
T1,匹配。一开始以为与匈牙利有一点关系,结果是一点关系都没有。花了10分钟左右把题理顺了后,开始打 O ( 4 n ) O(4^n) O(4n)的暴力。在昨天没有把数组清完的教训下,今天是把所有的数组都清了个遍。打完后开始想正解,想了半个小时,果断放弃去看T2。
T2,春节十二响。没什么想写的,只想说一句,题面不错。打完暴力后去打链的情况,但还是打炸了。
清明十二响,编程火葬场。
北京震轰轰,OI一场空!
T3,希望(我失去了希望)。连k=1
的特殊情况都没想到,只打了n<=16&&k==1
的暴力分。下午讲题时,讲题人(也是T3出题人)认为52分才是暴力分。敢问同样的暴力,为何您的暴力那么优秀?
最终T1好像是用什么背包,T2用set+树上合并,T3是长链剖分+Dp+数据结构维护。据说T3标程有900+的码量(真“中国好码农”)。
结果出来了,Day2总共44=20+20+4。算了。对于目前的我来说满足了。
下午回家后不久,省队名单就出来了,NOIP的370加省选的125总共算下来有247.5,rk51(竟然不是倒数第一),感觉就目前来说可以了。
这次省选就这样结束了。NOIP2019加油!