NOIP2017总结与反思


//由于12月生了两场病、1月忙于课内、2月前10天一直参加培训,一直没找出时间来写NOIP2017的总结,直到3个月后的今天。。

考前一周
从QBXT回来,停课两周,去了QDEZ的NOIP总动员,听st_nec大神分享经验。
1. 去了要戴手套。
2. 前几天要保持比赛状态,用洛谷月赛/cf virtual_participation来保持状态。
3. 试机的时候,一定要打个对拍,如果有条件的话写个spfa和dijkstra对拍测试一下queue和priority_queue,觉得时间不够就搞个sort和冒泡拍一拍。第一件事要把每个键敲一遍,还要快,不然晚了考场缺键盘可能会给换个游戏键盘就GG了
4. 注意拿部分分,例如NOIP2016换教室一题,概率全都是0或1能过6个点,此外如果m=0(不能换教室)用floyd直接又水掉4个点,m=1讨论一下又有7个点,m=2稍微麻烦点讨论又有5个点,在什么都不会的情况下加起来22个点88分get(虽然这一招这次并没有用上,题目部分分分得不够细,也没有大表格数据范围和测试点变多的大趋势QAQ)
5. 考试的时候一定要对拍,不然等于没做题。就算是最暴力的暴力也要把暴力重写一遍拍。(夸张了吧)
6. 考试做不出来题多上厕所。
7. 一定先把所有题读一遍,别上了题目顺序的当。
8. 一定开编译warning开关:在devcpp中compiler options中上面那个框里输上-g -lm -W -Wall -Wextra -Wconversion,功能很强比如提醒变量未赋值、忘记return、类型转换等。(可惜搞不了数组越界)

20171110 Day 0
中午到。下午背了会板,闲的无聊搞了搞O(nlogn)的LIS. (考试前一天当场学新东西)
去试机。(所幸在RZYZ考,没有去QFNU)
遇到了PJ的同学们LL, LBX (居然都和我一个考场)
对面坐着wdyhy... 吓人。。
2min先把所有字符敲了一遍,5min写个冒泡排序,7min写个sort,9min写完checker, 12min写完generator, 又调了调,开拍。没有拍出问题。(我觉得我没水平写dijkstra和spfa拍)
然后,感觉自己线性筛背得不熟,然后又写了个线性筛和暴力筛开始拍。25min过去了。
最后突然发现忘记加warning命令了!!28min加完,写了个小程序检验。发现好用,OK。(一共写了5个程序)
出去后,wdyhy跟我说他写了8个程序,测了什么map set之类的。话说我菜成这样set map都各只用过一次还WA了几个月到现在没A。。
当时心里想,这大概是wdyhy等高二学长们的最后一战了。祝他们考出理想的成绩。
晚上回去写个spfa, 21:50了,写了15min居然调不出来,气急败坏睡了。
20171111 Day 1
t1: 这是什么?
给定a, b,求使得方程ax+by=c无非负整数解的最大c值?
emm??
这是什么?
QAQ??
先码个exgcd.
然后准备暴力。
怎么暴力?a*b~a枚举。写着写着发现非常难写,去看T2了。
20min。
t2: 超级大模拟。。
分类讨论
先开个栈
如果栈在最后不为空就ERR
开个数组记录变量是否出现过
出现多于一次ERR
剩下的分类讨论
设a<b
(1) F i a n或F i b n 复杂度增加O(n)
(2) F i a b复杂度不变
(3) F i b a里面嵌套的循环全部失效
到1h必须写完!不难!
写啊写。
乱得要死。
50min: 好像有种特殊情况,F i b a里面套的有语法错误怎么办?!GG
赶快改,先检验一下有没有语法错误
1h: 好像还有特殊情况!F i n n!
继续改。
...
开了无数的数组,处理了无数情况。
1.5 h写完
2 h过样例
随即测大样例
ERR
ERR
ERR
ERR
ERR
ERR
ERR
ERR
...
GG
心情不爽,上个厕所回来看T1。
手玩几组数据
3 7 =>10
3 10 =>17
ans=2*b-a?
开始瞎猜
不对这a和b不是对称的吗,怎么会2*b-a?
4 10 =>26
4 7 =>17
5 6 =>19
手玩了5组数据,ans=a*b-a-b!(又是瞎猜)最后猜对了。(样例专坑2*b-a)
赶快写上,保证long long没问题后回去搞T2
ps: 后来听别人说是这样证的:
对于方程ax+by=ab-a-b,有a(x+1)+b(y+1)=ab,
又因为a|a(x+1), a|ab所以a|b(y+1),又因为gcd(a,b)=1所以a|y+1,y+1>=a,a(x+1)+b(y+1)>=a(x+1)+ab=ab,x+1=0,x=-1矛盾。
对于方程ax+by=ab-a-b+z,(z>0)有a(x+1)+b(y+1)=ab+z,
设原方程一组特解为{x+1=x0,y+1=y0}则通解为{x+1=x0+bt,y+1=y0-at(t为整数)},显然x0和y0中总有正整数,调整t的值使得x+1∈[1,b]
在这种情况下,a<=a(x+1)<=ab,b(y+1)>=z,y+1为正整数,y为非负整数。
回去调T2
终于调过了大样例
手测几个,感觉基本没问题了,过
2.5h,还有1h写T3
T3: 什么?最短路计数?
那就先跑个最短路好了。
不过我昨天晚上刚写挂SPFA,还没调出来...
算了写吧,dijkstra+heap我又不会写,比起n^2来spfa靠谱一些。
打了个spfa板子,又大概写了个bfs吧,当时感觉时间复杂度接近O(n^n)的(反正不会做了我也管不了那么多),但是肯定NPC.
多组数据...memset!!
就这样,考前五分钟存盘检查,文件名都看了一遍,complexity一个一个字母地对。
出考场...
第一个碰到wdyhy,“T3就是在拓扑图上跑dp结果我SB没写出来”...我能说我连dp都没想出来吗QAQ
看到走廊上hyw神犇在那里等我,第一句话“你T2考虑XX特殊情况了吗”,弄得我很慌张,总感觉忘了考虑什么...
中午和hyw,lsx吃饭
我:“哦对你们T3memset了吗”
他们:“woc...memset?!”
我:“没事就10分...我T2 100分都要爆了(当时场面需要随便说的)”
自我估分100+70+10=180
下午回去继续背板,搞一搞网络流。(听zhx说会考QAQ)

20171112 Day 2
进考场。第一题看上去很水,但做起来挺麻烦的。
数据范围...会不会爆long long??仔细算了一下,9*10^18很玄,于是开了double
为了防被卡精度还设置了eps
对拍后还是感觉心里不安
不过没办法,也只能这样了,被卡精度算我输
T2: 看第一眼:咦我会70分啊
于是去写
写完以后终于调过了,发现大样例T了??
大样例是70分标准啊
emm???
后来发现我的算法复杂度只够20分GG
瞬间我“灵机一动”,发现好像用一个玄学的优化可以降低复杂度
于是开搞,加了优化代码复杂度*2,但为了那70分我毫不犹豫地写了
特别难调。。终于调过了小样例赶快去测大样例发现...
依然过不了...
GG
至今不知复杂度为什么过不了大样例。
最后只好把两个暴力一起拍,总算没有拍出问题,但只剩下13min了。
赶快看T3
暴力感觉挺好写的
写了15行
剩下7min
完了写不完了
停下检查
文件名、输出、编译...
自我估分80+40+0=120
这次题目似乎不难...分数线估计360了吧...
滚粗
交完,wdyhy:"T2傻逼状压"
出考场,hyw依旧在那里等着
第一句话:“GG”
当时感觉hyw大概有:100+100+0+100+40+30=370
现在说什么也没用了...
回去吧,滚,滚回去学课内,竞赛不是我该干的事。
到家后睡了3个小时,然后写地理作业。
只好明年再战了。
AFO 2017

查分
考完后的下一个周日,打了场CF作为退役赛。
一名印度人hack了18个人...我因为被hack所以改过来了所以rk689了(当时最高rk)
什么这是真的?那我rating可以暴涨了?
晚上猜着我的rating: 1368(+100)? 1348(+80)? 1388(+120)? 1328(+60)? 最后感觉1348比较靠谱
第二天放学,我第一个冲出校门,7min背书包跑了1000m跑回家(同学以为我疯了)
先来个温馨的,再接受现实...
上cf:
"You got +132! Wow!"
什么?!1400(+132)?! cf故意让我上specialist?
温馨的过去了,去看冷酷的。
www.noi.cn
推迟发布成绩了?!
就这样等了好长时间,直到特派员发出成绩
100+100+30+100+25+0=355?!
woc搞笑呢?!
D1T3 30分?!
好吧那我当它是真的
hyw 100+100+0+80+40+30=350
她D2T1莫名其妙被卡掉20分
lsx D2T1爆零,255
省一线260...
黄岛开发区初二神犇tyfD1T1爆零...发挥失常150...
ckw大佬莫名发挥失常,D1爆炸,拿500的水平考了300.所幸今年高一。
好吧,那祝他们明年考出好成绩。
cz520,tyc神犇570...
yhy D2T3数组开小遗憾490.

总结与反思
1. 本次考试最大的败笔在D2T2.
数据范围四个档,自己太想要70分结果最后水平不足只拿了25分。
其实想拿40分并不难,因为有个特殊条件,而我把过多精力放在了70分上没有注意到40分特殊条件。
反思:D2T2这种题,不能一上来把目标订得太高后来又逐渐缩水,应该先从第一档开始五分五分地拿,稳扎稳打。(40分我应该还是能想出来的)
//D2T2正解 状压DP
2. 想好了再写。
D2T2写了一个错误算法耽误了40min.如果不写错误算法,就算少了5分拿了20,D2T3总有50min写暴力,30分总能拿到,那样的话就380了。
3. 时间分配太不均匀。死磕D2T2耗时太多。
4. 考场策略只是一部分,最重要的还是水平。
拓扑图上的DP我只在打一次模拟赛的时候见过一道还爆零了,至今不会做。
DP要多搞搞,特别是DP和图论结合。
还有就是状压DP,只做过一道愤怒的小鸟根本不够。果然考场上没想出来。
5. 暴力能力不够,暴力不是想打好就能打好的...D2T3白扔30分...
6. 考前专门练练怎么防止卡精度。不然考场上写double真的很不放心...
7. 后面的计划:
NOIP2017完全应该100+100+30+100+40+30=400.
省选的话,我感觉进队概率为1e-9.况且我还面临地理生物中考。
但我也会参加一些省选培训,目的是提高水平,SDOI2019争取进队。
省选算法太多,慢慢学吧。。一边学着知识,一边还要练思维,多打cf,争取暑假上蓝,初三寒假上紫。
要接触省选难度的比赛了.. 后面的OI之路荆棘丛生,对我这个初中蒟蒻来说充满了挑战,那只好继续拼搏。
吐槽:数据结构题好可怕...
NOIP2018 目标: 3*100+2*70+1*30=470

猜你喜欢

转载自blog.csdn.net/suncongbo/article/details/79319556