GDKOI2017爆炸0+30=30,GDOI2017 0+130=130,NOIP2017普及350。
距离考试还有一天。下午机房要做第二天的考场已经封闭了,于是到了隔壁机房,lc和gry他们也过来了。
早上6:15起床,吃完早餐7:00到机房,还有一个小时才开考。
8:00准时开考,拿到题面。T1题面很长,细节很多,看了10分钟,最后发现是一道复杂的最短路题。想了想打了二分起点时间,发现太复杂,于是从终点开始反向dfs。由于细节多,代码量大,样例调到9:49才过了。
于是放下T1,看了看T2,貌似就是个多个模式串的字符串的匹配问题,忘了AC自动机怎么打了,于是打了KMP。统计答案想了十分钟,用排序乱搞过了样例,手造了几组数据发现没有问题去看T3。
T3的大意是给你平面上的一些点,每个点是三种类型中的其中一种,如果一个点是另外的两个相同类型的点连线的中点,那么这个点受到干扰,求每个点受到多少次干扰。点的数量<=100000,坐标xi,yi<500。有30%的数据可以O(n^2)过,于是打了30分的暴力,突然发现时间限制2s,于是尝试用位运算以及register卡常。
优化完T3已经11:34了,看了T4决定打暴力找规律,结果什么也没有看出来。于是放弃了T4,检查了一下文件名,发现T1打漏了一句话,补上。12:00考试结束。
下午去听讲评,T1果然是反向,T2的确是AC自动机,不过貌似统计答案的方法跟我的不一样,T3是降维后用FFT加速,T4插头DP+矩阵快速幂?
估分?+40+30+0=?+70。
终于发成绩了,实际上是20+10+0+0=30,炸到剩下30分。T1只过了两个点,T2的4个暴力点中WA了3个,T3暴力点全WA。去复评,T1也许是细节没打好,T2的统计答案错了,T3我把判断一个数是不是偶数从%2==0改成了&1于是错了。Day1爆炸。
话说lc那个机房的人貌似没有成绩,于是lc很晚才拿到成绩,一看lc的成绩单:110。lc的T3竟然有80分,有两个点TLE了,时间限制2s,lc的程序跑了2280ms。拿去复评竟然过了,就这样lc切掉了T3。一道正解FFT的题竟然被lc写了39行过了,然后lc便讲他的神奇的分12种情况的做法,竟然是一种O(n^2)的算法,不过常数出奇的小。
膜拜列表:
myh 240 lc 130 tzw 100 tjy 80 (被初一大佬碾压)
今年的Day2是讲座日,先是数论入门(一点也不入门),然后是树上的启发式合并。中午打了一盘荒野竟然吃鸡了。下午讲的是动态规划的经典思想。晚上聊了聊明天可能考的算法。
睡过头7:00才起床,到达考场已经7:50了。不知什么原因8:10才开考。T1果然还是按照惯例,一道数学题,不过貌似公式很难推的样子,推了半小时没有推出来.看了看T2好像比较简单的样子,于是打了SPFA+乱搞,9:13过了样例,继续推T1,然而还是没有推出来。想到分类,分了三类讨论,推出了第一类的公式,然而后两类的公式还是没有推出来。于是去做T3,看到L=2的情况,打了O(n^2)的动态规划。打完后突然想到了T1的第二种分类的公式,于是T1只差最后一类的公式了。在草稿上画满方格后,终于推出来了。
看了看时间充足,搞了搞T4,想到一种很简单的方法,花了10分钟打完,样例没过(考完试才知道这种方法是错的)。剩下的时间不多,于是检查了文件名。考试结束。
中午不饿于是没吃午饭,买了些面包吃。在宿舍打三国杀打到2:00,去听讲评。
T1的确是O(1)的数学题,但是我貌似看错题了,T2请了很多同学上去讲做法(有一个人的方法跟我的一样),T3的L=2是个O(n)的动态规划,可是我打了O(n^2)的。T4没有听懂。
估分0+10+20+0=30。
拿到成绩一看50+20+20+0=90,比预想中的高了60分。T1看错了题,推的公式竟然还有50分,T2的乱搞搞了20分。xfz打出了T1正解却被cin cout卡掉了20分。
膜拜列表:
myh 300
两天总分30+90=120,只拿到了二等,实在是遗憾,要是Day1的暴力没有打错就有150(一等)了。几点的经验:
1. 第一遍打代码的时候要注意细节,不要依赖于后期的调试来查错。
2. 心态稳才是最重要的。
3. 多做题,背好模板,不然考试想到正解却打不出来。
4. 每次天数>=2的考试我第二试的分数永远比第一试高。