高一下期末考试总结

17.6.20 2:40~5:40

本次考试的结果是不错的,从孙子兵法的角度,我将在赛前和赛中进行总结,赛前有空再说,今天先及时总结赛中

赛前

这场考试前的而学习并不牢固,基本上背不了图论算法,考试前就复习了下写了下思路争取自己实现,好在没有考tarjian算法(其实考了我们看出了)

赛中

这次开始考试并没有一上来拿着第一题就开始写,因为我觉得有些难度,没有好生理解题意,我就去看下面的题了,这是个正确的选择,要从最简单最好拿分的开始,出题人本来就没说从简单到难出题,而且有时候出题人觉得简单的你不一定觉得简单。

浏览过了所有的题目,我就觉得第二题最简单。

第二题:最开始想了二重二分,结果发现是错的,然后及时调整思路,一看数据规模,只有完全暴力1e8,就只有两重循环+DFS就写完了,结果是。。对了七个,因为我没有考虑第一个点是否满足上下界,下次也应该注意自己测数据的时候,要注意始末位置的特殊和大数据(这里指数大来判断程序是否考虑了这些情况),当然就题论题,这里可以改枚举范围,也可以在DFS的时候开头就写一个return(vis前,和vis的原来相同),这样都可以避免,之前的图上的遍历之所以不这么写是因为第一个点肯定可以走。

然后我权衡了一下,发现第一题可以做

第一题:一个BFS,设置了一个inq,设置了一个免疫数组,为了清除方便,就用了一个队列,当然stack也是可以的,这是新发现的技巧,但是以前好像在2SAT有类似的,反正是对的,然后经过了四十分钟的调试就算是写完了,跟踪完一遍(我用的中间变量)发现和想的一样就没管它,然后有个-1我也判断不出来也就不管了,结果最没把握的一道题a完了,对!没有-1

时间过去了一个小时,然后第三题觉得和例题有点像,代码有点长就先不管他

第四题:先判断,强行贪心,搞掉所有rd为0的间谍,剩下的就不停地提出来(肯定都是环),选最小的,然后一遍一遍过,觉得没问题,现在也觉得没问题,过了60%,倒是很满足了,后来他们说这是强连通分量,我一看,嗯的确是。。吓得一身冷汗,我要是意识到了我就不做了。。最后还有一个多小时搞第三题,先写了一个最优生成树,还有五十分钟,然后以为开始想算法了,然后把树边一枚举,改了以前最优生成树代码,然后就完了。。。最后超时两组

最后四十分钟来检查,这个是值得的,因为我的确是检查出了一些东西,有一个maxm写成了maxn是在抄代码的时候意外发现的,感觉非常幸运。然后第三题也是因为一个脑洞,结果发现vector意义重复了,应该两个函数偷懒写成了一个函数,就造成了迭代错误,不然就错啦,当然不改其实是也对的,太牵强了,只不过时间就多了,反正多花时间多检查,跟踪调试,肉眼观察都很重要,还有就是这次某个超文件名打了个空格,我只有呵呵呵了,但也要注意自己不要犯错,自己觉得最后最安心的检查就是把out删掉,执行exe还可以出来并且结果正确的时候。

赛后

这次其实自己的思想是可以了,最后一道题明明就是个乱搞算法居然过了60分,倒还是不错,实际上就是考虑了强连通分量所点的三分之二的情况,自己再聪明如果要发挥一个前人经过努力的算法倒是不容易,因此正确的思路其实应该是熟练掌握所学知识,自己去分析题目,自己先提出解法,然后当发现有一个算法正好是实现这个思想的时候再快速的打出去,始终要牢记,思路终于写代码,思路一旦不好,代码考虑的又多又慢还容易出错,磨刀不误砍柴工这一点一定要牢记。

这次有几点收获

1、考场和考前同样重要,“此兵家之胜,不可先传也”
2、权衡题目,从简开始,不要拘泥顺序
3、这次没有乱七八糟的想法,每一种算法都是科学的并且自己没有找出反例
4、想得多了,写代码时间少了,分高了,是好事
5、注意特殊点的检验
6、不要危难,也不要因为想到了一个算法记不得怎么写了而不写,既可以回忆,也可以换一种思路
7、跟着程序走一遍,跟踪各个变量会有不错的收益,最后还可以把所有变量的末状态打印出来,如果有异常就按时程序有潜在bug
8、遇到有向图和强连通分量的关系很大

你可能感兴趣的:(比赛总结,比赛)