2016.8.18纪中比赛总结

估分:100+20+10+40=170

实际:100+10+0+20=130

排名:并列第21名(大神们来了没办法)

过程:

一开始看了一遍所有的题目,觉得这次的题目比较变态,必须认真对待。

通过多“年”的dp经验,我在纸上算了算便马上开始拍代码,调试了一阵子后迅速水过,

状态转移方程:if f[i+j]<>0 then f[i+j]:=min(f[i+j],f[i]+1) else f[i+j]:=f[i]+1;  不用初始化。

第一题搞定了,发现第四题潜藏水分,于是拍了个弗洛伊德双向图,瞬间感到呵呵,瞄了一眼数据,发现可以过30~40分,还算比较满意,毕竟spfa我还不是很熟练。做完这两题后,我便在犹豫先做第一题还是先做第二题,犹豫了很久之后,我觉定先做第三题,毕竟第三题可以用暴搜,代码简短,正确率也高,虽然得不了满分,但2048的代码少说也要一两百行,还很容易出错,于是做过了艰难的抉择后,我开始拍第三题的代码,此时已经1030左右。事不宜迟,我马上开始打回溯,30分钟左右,打完了,只输出了一组数据的答案,还是0,又经过了一系列的修改调试后,我重新打了个深搜,此时已经1100多了,保险起见,我先打了个第二题的输出‘Game over’程序,然后再转过来攻克第三题,新的方法已经打了出来,除了1 1 1这个数据之外,其它数据均202错误,一开始我竟单纯地认为这是被零除,后来想起来是栈溢出,1115分了,我争分夺秒开始检查错误,最后还剩5分钟时,为生活所迫将第三题打了个表,然后不抱希望地继续找错误,终于比赛结束,130分。

上题解!

第一题:过程中有。

第二题:纯模拟,枚举上下左右四种情况,操作巨复杂(各种WOC

第三题:用二分枚举最后答案ans,然后判断答案是否合法:下面借用root的题解:

豪华礼包x个:1键盘

幸运礼包y个:1U

普通礼包z个:1鼠标

由于相邻两位领礼包的顾客拿到的礼包类型都是不同的,所以:

x <= y+z+1

y <= x+z+1

z <= x+y+1

判断即可。

第四题:spfa,经过一群一群又一群的优化变成一维数组,时间方面不用担心,最后三个点时间限制是10000ms

总结:这次比赛时间没有利用好,第三题水分没拿到,第二题正解没时间做,这是第一重要的,因为如果时间没有利用好的话,一直猛攻一道题也不是办法,错了代价就大了(呵呵)

再接再厉!!!

你可能感兴趣的:(2016.8.18纪中比赛总结)