About Me
lhy,初一蒟蒻选手以及GDOI2018酱油选手。
Day 0
中午十二点多就早早地到了学校,在机房整理了下博客。一点多时上车,前往中山一中(坐在yhf大佬前面哦)。
GDOI之前停课集训了两个星期,结识了若干大佬,学到一些玄学算法,被各路大佬虐完之后立马就滚去GDOI,心中已经做好了写八题暴力不进soi的心理准备(初一就想进soi,呵,呵呵),因为感觉自己 真 的 很 弱。
好吧,其实我心中还是有点侥幸心理的,也许这次能上个200分什么的,呵呵。
经过一路颠簸之后,我们终于到了酒店。这一次lhl很快就分配好了房间,简直火速。我和fmj被分在一起住。酒店的房间还是很大很不错滴……
下午五点左右,我们一行人前往中山一中蹭晚饭。经过一番仔细的比较之后,还是觉得广州二中的伙食比较好,嗯......
蹭完饭后,和各位大佬去考场踩点。我和ywq没费多大劲就找到了,而yhf率领的队伍却因为“搜索的遍历顺序存在一些问题”找了大概二十分钟(其实他们上二楼后左转就能找到了,但他们却把整栋楼都找了一遍)。
晚上在酒店看电视看到很晚(前晚睡太多了)。
不知不觉中,一天就这么过去了。
Day 1
早上六点二十多分,简单梳洗后到楼下吃早餐。
这家酒店的早餐真是好啊,有煎培根、煎香肠等等,还是自助的。和lah,czy,fmj等人吃玩这顿“极其油腻”的早餐后便出发去一中。
考试的开始时间从八点推迟到了八点半,但对我并没有多大影响。很快,监考老师说出了解压密码:tiandihe_naiganyujunjue!66。原谅我语文不好看不懂。紧接着,我打开了试题……
T1:农场
题目大意:给出若干个数,求这些数最多能被平均地分成连续的多少段。数的个数<=1000000,1<=每一个数<=10,所有数的总和<=1000000。
签到题?似乎可以枚举答案。先前缀和一遍,然后O(n)分段,看是否可以分成相等的若干段,从大到小枚举,一但符合条件就输出即可。乍一看,貌似是O(n^2)的算法,但仔细想一想,其实可以在分段之前先判断一下所有数的总和mod当前枚举的段数是否为零,如果不为零就肯定分不了,跳过,否则就开始分。这样时间复杂度就降到了O(sqrt(n)*n),再加上一些玄学优化,然而还是TLE。然后我想了想在分段时是否可以运用二分查找,结果脑子抽了的我算错了时间复杂度,以为这样会比纯暴力还慢,其实是O(nlogn)。于是我就没有把二分加上,只用了一些奇怪的优化。差不多一小时搞定这道题。
T2:密码锁
题目大意:给出n个不大于m的数,每次操作可以将一个连续区间中的数同时加一或减一,如果一个数在一次操作后小于0,则令它等于m-1;反之,如果一个数在一次操作后等于m,则令它等于0。求最少要操作多少次才能使所有数均等于0。数据范围记不太清了,n和m好像都是10^5级别或10^6级别的。
看到这道题,首先条件反射,想到了区间dp,推了一会儿,推爆了。又想了一会儿,没想到好的做法,果断跳过看T3。
T3:涛涛摘苹果
题目大意:有一颗有根树,每一个节点都有一个权值。每过一个单位时间,根节点的权值会清空,然后所有节点的权值都会转移到它的父节点那里。比如说这棵树:
(节点上的数字表示这一个节点的权值)
一个单位时间后,它会变成这个样子:
接下来有若干条指令,可以分为两类:
1、在第t个单位时间时,给某个节点的权值加上w。
2、询问在第t个单位时间时,某个节点以及它所有子节点的权值总和是多少。
对于每一个询问,输出一个值表示答案。
节点数和指令数好像都是10^6级别的(数据范围记不清了)。
这道题有50%的数据点都是具有特殊性质的,比如说有10%的数据树是退化成一条链的,还有一些点是只有询问指令的,等等,还有10%的小数据。当时我就想着“面向数据编程”,对每一种特殊情况都搞一下,于是我就马上开打了。我先打完了10%的暴力,直接O(n)处理每条指令,轻松过样例,然后又转向数是链的情况。对于树是链的情况,我的想法是用一个队列去模拟,打完发现并没有比暴力快多少,呵呵。保险起见,我还是把这种特殊情况删掉了。码了我差不多两个小时吧。其实我想到了只有询问指令的那些数据的一点点思路,但由于时间真的不多了,我就没再继续想下去,拿好暴力分就行了。
折回来看T2,还是没想到什么好的解法,便直接打了n=4的爆搜,以及m=2时的特殊情况。显然,m=2时的答案即为n个数中有多少段连续的1。因为数据范围貌似并没有明确指出有m=2的情况,所以我也不能确定是否可以水多点分。写了三十多分钟(太久没写爆搜,写这题时写爆了好几次),奔向T4。
T4:小学生图论题
题目大意:有一个n个点有向图,每两个点之间都恰好有一条边相连,现在已知m条简单路径,求图中强联通分量的期望个数,然后要取一个很奇怪的mod。数据范围完全忘了,好像比较大吧……
“XX学生XX题”系列 & 不可做的期望题。一开始我想了想m=0时的情况,但并没有什么用。随便输出个数,走人。
期望得分:80+20+10+0=110
中午又去一中蹭饭,回酒店的路上和lah谈笑风生。在酒店看了会电视。
下午评讲:
T1:前缀和+枚举所有数总和的约数乱搞,如果这一个约数的一倍、两倍、三倍等等都在前缀和中出现,那么显然这一种解是可行的。时间复杂度≈O(n)。
T2:差分+贪心乱搞,似懂非懂。值得一提的是,出题人给了10分m=2的数据,嗯,不错……
T3:奇怪的数据结构,不懂。
T4:仍然是不懂的期望题。
四十分钟讲完,成绩单马上发下来了(这次的打印机不错哦)。
我怀着期待的心情,看到了成绩单,心里顿时凉了。实际得分:50+15+10+0=75。
T1不知道为什么WA了5个点,只得了五十分,可能是我写的某个玄学优化存在漏洞。T2那20分的暴力分我只拿到了5分,很有可能是因为我直接写了dfs,而不是bfs或记忆化搜索。当时我还天真地以为这么小的数据dfs肯定能水过(其实我写过记搜,但写挂了,这使我误以为这题用不了记搜,于是直接写了爆搜,呵呵),结果白白挂掉了15分,还好有10分m=2的数据补了回来。T3倒是意料之中的。T4果然爆零。
lah也爆炸了,他T1WA了8个点,只拿了20分,总分50。一向很大佬的lah竟然爆了,这是我没有想到的。
fmj90分,大佬。
czy85分,大佬。
初二初三几个100+,大佬。
我和lah两个闷闷不乐地去复测,czy因为T1最后两个点发生玄学错误也陪我们一起去了。此时我心中还怀着最后一丝的侥幸心理,也许评测机突然死机了什么的。
闷热的下午,等了一两个小时,终于轮到我们了。lah重测之后发现他的T1一个if写炸了,也没有再说什么。我重测之后还是一样的分数,T1某个优化可能写错了,T2那20分的数据用爆搜是水不到的(lah用记忆化搜索水到了,大佬)。czy重测之后发现数组开小了……
怎么说,还是有点遗憾吧。但我心情也没有很坏,毕竟我还是初一,连NOIp提高组都没参加过,这一次只是过来见世面的。Day2加油吧!
晚上回酒店,照样很晚才睡。
Day 2
早六点多起床,又跑到楼下饭堂吃了一顿“极其油腻”的早餐。不同的是,自助餐改成了围餐,但还是吃一样的菜。昨天算了一下分数,今天至少要160分才有希望进day3,感觉有点悬。
吃完早餐之后很快就走到了一中,进了机房。这一次比赛的开始时间只推迟了10分钟,开心。
不久,解压密码就公布了:easy?GDKOI2019_jian!。看来昨天的题目被一众大佬喷得不轻。
T1:谈笑风生
题目大意:给出一张无向图,每一个点有一个值Wi。对于两个点,判断1与1..Wj中的每个数是否互质,判断2与1..Wj中的每个数是否互质,判断3与1..Wj中的每个数是否互质……最后判断Wi与1..Wj中的每个数是否互质。若互质,则它们之间的边的边权就加上这一对数的和。现在可以将每条边的边权都可以减少一个值K,求K最小为多少时才能在走过的总距离不超过T的情况下从节点1走到节点n,并输出在K最小的情况下从节点1走到节点n的最短路径的长度。Wi<=10^9,n,m<=10^5或10^6(记不清了)。
这道题求出边权之后不就是裸的最短路+二分答案吗?当时思想太僵化了,竟然没想到用gcd来判互质,硬是打了个分解质因数来判!都想扇自己一巴掌了。结果原本50+的算法硬是被我搞到了20。
T2:滑稽子图
题意我忘得差不多了。
这道题一上来就是一些奇奇怪怪的数学符号,搞了半天才弄明白。搞明白之后也没想到什么解法,并且T1已经费了很多时间了,有点慌,所以打了一个10分的暴力就走人了。(好草率啊)
T3:木板
这道题的题意我也忘得差不多了。
咦,是区间问题耶,我想起了我省选前刚学不久的莫队,再加个线段树也许可以水一波?然后就如火如荼地开始码线段树+莫队。码完后又调了好久好久,结果发现这道题不具有区间可加性啊,噢,GG。最后还是老老实实地打了10分的暴力。
T4:巡逻
这道题的题意我又忘得差不多了(怎么老忘题)。
看到这道题时时间已经所剩不多了,也没多想,乱搞一通就完了。
期望得分:20+10+10+0=40 ---------------- Day2光荣爆炸,感觉自己马上要滚粗了......
下午也没心情去听评讲了(反正也听不懂),颓在酒店看电视。
成绩出来之后,fmj把成绩发给了我,和我估计的一模一样,呵,呵呵......
fmj 20
lah 30
czy 0
看了看初二初三的成绩,发现我Day2差不多是最好的,然而Day1被强势碾压(所以我神气个啥),看来还是拿稳难题的暴力分好啊(但是D2T1还是爆)。
看来进Day3无望了(我这个蒟蒻还想着进Day3?!),不过这毕竟是第一次,以后还有机会,努力吧。
晚上到酒店继续颓,刷完了一堆电影。
至此,GDOI2018,总分115,完美爆炸+滚粗。
Day 3
Day3这一天,也许为了弥补一下比赛爆炸的遗憾,我去听了网络流讲座(虽然什么都没听懂),除了ywq和我其他人都去旅游了(孙中山故居???)。
回酒店继续颓(我好颓啊)。
Day 4
上午闭幕式+颁奖,几乎是压线拿三等(三等线110,我115),没想到三等还有奖牌耶!!!
初二初三若干位大佬没来闭幕式(听说去浪了,结果被教练说了一顿),于是就顺便过了一把上台拿二等奖奖牌的瘾(虽然并没有什么用)。
话说这是我们学校近几年来考得最差的一次,没有一个一等,嗯......任重道远,毋忘奋斗啊!
后记
这一次考试,失误还是蛮多的。首先是D1T1写炸了,没有拿到应拿的80分(再搞一搞也许有100分),然后就是D2T2没有拿到暴力分,作死写了爆搜,还有就是D2T1没有使用合适的判互质方法(就是个gcd我都想不到,思想僵化),最后就是D2T3没有好好想就开始码,耽误了很多时间,搞到D2T4根本没时间搞啊。总的来说,还是比赛经验不够,还是平时打比赛打得太少了呀。
那么,既然这次挂了,就在NOIp2018再战吧!!!
QWQ
P·S:因为这篇游记Day2及Day2以后的内容拖了几个月才完成,所以有些细节记不清楚了(所以有些烂尾),还请见谅。GDOI2018所有题的题意以及题解都在这里(转自ONION_CYC的博客,其中也包括Day3的题),有兴趣的同学可以看一看。
真·<完结>