天天看点

[GDOI2016旅游(QwQ~)记]SurveySummary

Survey

To Start With

本来来之前信心满满,觉得进第三天是很容易的事(其实从分数上看的确很容易,但是……),想在第三天水出一笔成绩。唉,这个 flag 立得飞起,然后就炸了。

Day1

想出了第一第二题,第一题三分打完不会拍,想想手工数据也很难出,就直接检查几遍代码放一边了。第二题打完耗了一段时间,然后对拍一打,哇,全都是对的。

然后我很嗨森,我在想今天是不是200+拿定了。这时只剩下四十分钟,我在想,后面两题看起来那么复杂,与其打暴力,还不如直接检查前两题代码,保证拿分。然后我又浑浑噩噩度过了25分钟(因为我的检查代码好像并没有什么卵用),这时,我突然发现第二题我的程序输出和暴力输出其实是不一样的,吓得我赶快打开对拍程序一看:

@echo off
:l
lcs_data.exe
lcs.exe
lcs_brute.exe
if errorlevel  goto WA
echo Accepted!
goto l
:WA
echo Wrong Answer!
pause
           

人群当中,我的

diff -q lcs.out lcs_brute.out

怎么没有打呢?

然后我崩溃了,整整15分钟,程序不停地出错,我也不停地调试。最后比赛结束了,我还是没有调试出来。

最蠢的是,我拥有对拍用的第二题的30分暴力,但我只顾着调试正解,在最后一分钟也没有弃坑,将暴力文件名改过去,拿30分(后来事实证明,如果有这30分我就能进第三天了)。

最后收到结果,是0分,我至今仍不知道我第一题哪里迷之错误了,一分也没有(听说初一有人二分过了,无言以对)。我一时接受不了,毕竟我经历了从信心满满200+到0的落差,主要原因还是打错对拍的bat文件,而且第一天一下子落了别人100到200分,这还怎么玩?我十分迷茫,感觉第三天无望,便忍不住落泪了(好久没哭过了)。

Day 2

Day2还好,幸亏没有因为第一天的失败而心态爆炸,导致更惨的后果。

第一题想了一会,想出了一个奇怪的解法,这时我在想使用玄学算法 spfa 还是 dijkstra ,毕竟省选难度比赛很有几率会卡玄学算法,但我还是嫌打堆麻烦,便冒险打 spfa ,并且最作死的是我还使用了c++ STL 里面的队列。

第二题看得我一脸懵逼,感觉像是大暴力。

第三题一眼点剖,想了20分钟想出了正解,然后这时我有点纠结,是否要在本场比赛打这道点剖,毕竟我没有考场点剖经验。

第四题没有部分分,一脸懵逼(连输出 No 都忘了,虽然并没有分)。

结果第一题耗了2小时,对拍不断报错,我不断发现自己算法是错的,幸好我一直找到了改进的方法,最后终于弄出了正解。

还剩一个钟,我去打二三题暴力。这时还剩半个钟,我本应该去思考第二题如何减枝,这样说不定能200+实现翻盘,但我自信以为自己30分钟以内能解决第三题,便码了起来。结果比赛结束我还没打到点剖主程序。

成绩170,还算可以,但是Day1太爆炸,便错失进入第三天的机会了。

Day 3

虽然今天没参加(也没旅游),但我还是要说说。

第一题一眼莫比乌斯反演,有点想头。第三题感觉像是回文树(其实是脑抽)?第二、四题一脸懵逼。

最后膜拜一下初三成功进队的Werkeytom_FTD。

Day 4

Ag 滚粗,唉,相比初二时蒸蒸日下啊,该好好总结了。

Summary

正片开始!

栋有点郁闷,他觉得自己这几天并没有表现得特别突出,只是将自己能拿的分都拿到了。他看着我们一个个挂了,感觉很奇怪。

其实栋有一点说的很好,我心里也很清楚,其实大家想出来的题都差不多,理论水平都是一样的,但就是只有栋将水平发挥出来了。

反观我自己,第一天第一题没拍,第二题拍错了,这是我不够细心的锅。其次第二题我的解法可以再优化,而且优化之后时间、空间和代码复杂度都会大大减小。

第二天第一题一开始思路错了没有细心检查,导致了后面越走越远,消耗了本来能拿来翻盘的第三题的时间。

Experience&Plans

∙ 本次比赛最大的问题就是我不能将自己的能拿的分拿到手,针对这一点提出以下经验:

  1. 一个程序,从思考算法,到构造框架,再到考虑细节,都要十分周到,不停地思考是否存在反例,是否有可以优化和改进的地方。尤其是思路上的错误一定要尽早发现,以免酿成后患。
  2. 对拍程序的时候,发现程序的错误时,一定要有全局观念,不要只揪着这个错误不放,要放眼整个程序,想想会不会有类似的问题出现,做到事半功倍。
  3. 打程序时思路一定要清晰,这样才能在短时间内高准确率地完成复杂的代码。
  4. 看起来再难检查的题目都要尽力检查,不要嫌麻烦就放弃了。
  5. 不要揪着一两题不放,做到每一题都思考过,都尽量拿分(例如第一天第三题40分)。
  6. 对拍一定要打好,不要错了,不然发现了也来不及。
  7. 考场上还是不要作死打 spfa 了,这次能过是出题人很良心。还有程序复杂度本来就很大的时候少用 STL ,以免常数爆炸。

∙ 针对一些特定的思路总结经验:

  1. 对于有浮点数出现的题目,要善于发现其中的整数,便于枚举或进行其它乱搞。
  2. 对于一些本来很经典的问题的升级版/修改版,要善于从本来的解法寻求突破。

∙ 新的赛季,要加把劲努力了:http://blog.csdn.net/a_crazy_czy/article/details/50949947。

继续阅读