联赛结束了,考的还可以,但有点运气成分在里面,还是有些地方做的不好。
Day1:
做题过程:
看完题,觉得难度不高。
T1模拟,打完把所有数据都测了一下,没什么问题。
T2一开始觉得是找最小环,但是不知道正确性,想了一下,没什么问题,每个点出边也只有一条,就先打了个tarjan。打完之后,过了样例,又打了暴力对拍。
T2对拍时码T3。一开始的想法是可能要状压dp之类的,但先打了个自己觉得可能会跑得很快的暴力。打完,发现样例真的跑得飞快,又出了几个大数据,发现根本不怕超时,就没去打dp了。
打完三题大概10:30。开始对拍、检查。
到交卷时,已经检查了几遍程序,对拍也没什么问题。
考后:
讨论时发现T2可能暴栈,用bfs就好了,我还打了个tarjan。
T3竟然看错题了,对王不算对牌,不能带出去…而且我好像有个地方打错了。但富榄说出到出错的数据概率不大,我将信将疑…
Day2:
做题过程:
看完题,T2、T3有点头绪,但是T1竟然不知道从何下手。
先打T2,dp很容易想。打完测样例没问题,然后改滚动数组。随后发现我的做法可能会超时,因为每次要清空数组,但还是先没管,去看T1。
想了会儿T1,觉得应该是贪心,每次找距离最小的两块石头,搬走更优的那块。于是手打了个堆。但是对拍各种错,我有点慌了。但我告诉自己镇静下来,先去打T3。
打T1的堆费了一点时间,看T3时已经10:00了。一开始的想法是链剖,然后觉得会超时。看了下数据,发现有几个是链,很容易想,通过链进而又想到了NlogN的做法,但是觉得可能打起来有点麻烦,而且有点难打(毕竟还要留时间给T1),就决定只拿80分。打完,检查了一下,出了几个数据测了下,没问题,赶紧回头看T1。
这时已经11点多了,我还是没什么头绪。Dp?看数据范围可能性不大,而且T2也是Dp。贪心?我贪心错了,或许是姿势不对。又想了一会儿,然后去上了个厕所。
回来的时候突然灵机一动,是不是先二分?此时刚好11:30,赶紧开打。检验的地方写了贪心(当时也没细想能否保证正确性,是不是用dp更好点)。11:45左右打完,对拍,没什么问题,终于松了口气。检查了下程序,出了下极限数据,发现T2可能过不了最后一个数据点,但是也改不了,也就算了。
结果:
Day1:100 + 100 + 100
Day2:100 + 90 + 80
总结:
Day1T2没被卡算运气好。以后递归的程序要想想是否会暴栈,看看能不能用非递归的算法代替。
Day1T3没被卡到也是运气好,毕竟题目读错了。做题不要受惯性思维影响,不要自以为是,多读几遍题。
Day2T1没去验证贪心正确性,好在是对的。做题要多思考,少冒险,尽量用安全正确的做法。
Day2T2做法好像是伪正解。做题要想想是否有更优、更容易的做法。
考试不要紧张,放松心态。
简单题不能丢分,难题尽量多拿分。
注意做题策略,做好规划。
对于一些基础的知识、常见的题型要掌握好,比如Day2T1明显的二分答案,以此节约时间。