2016CCPC合肥总结

来源:互联网 发布:如何修改淘宝发货地址 编辑:程序博客网 时间:2024/06/10 09:09

孤独不是独自在某个角落点上一根烟,而是这根烟结束。

有时候的确是迷茫的,已经大三了,还是去打了块铁。大一快结束的时候接触ACM以后,就有借口了,逃课、抄作业、不管是不是专业课都是能混就混,因为我要刷题,因为我可以对别人说除了算法我什么都不想学。到现在,结果呢,算法其实也没学好,大三还是铁牌选手;操作系统、计算机网络、数据库也没学好。拖欠的太多了。

一方面自己的天赋确实不够,但是还是那句话,以现在的努力程度,还远没有到拼天赋的时候。再说,天赋虽然不是绝佳的,但我也总能算个中人之资吧。那么总的来说就是——被自己努力的样子骗到了。

1)不够脚踏实地!心中总是带着虚荣,可能是想着多发几篇博客骗点访问量,尽管那题是老师写出来的,自己并没有理解太透。

2)自律力太低!有时候连着几天都没刷题,作业多固然是一个方面,但是同学喊打游戏,一喊就去了!

3)作息不好,睡得太晚,有效学习时间不多。

这几点得不到改正,我在今后的学习生涯中我也很难有所建树。

另外,还是记录一下这次合肥赛的流水。

14号晚上10多到的合肥站,到宾馆已经是快零点了。宾馆很大,床很软,睡的很晚。

15号8点半起床,吃了个早饭去买了一条裤子,因为身上穿的这件做完上出租的时候动作太大导致……

安徽大学面积很大,学校环境很好,走的很累。

下午2点多热身赛,Ubuntu系统不是很习惯,测试了一下环境,A了两题,但其实3题都很水。第三题是树形图计数,算是一个模版题,但是已经告诉了解法,然而行列式计算我们不会。

15号晚上9点半就熄灯开始睡觉了。

没想到半夜做了个“噩梦”醒了。后来推算一下那会大概是3点。说来可笑,梦见追了半年的她在梦中再一次无视我的痛苦和悲伤高傲的从我的面前走过,感觉眼角有泪划过,辗转反侧可能5点多才又睡着。

16号发生的一件事很多人也都知道了。合肥因为“铁人三项”比赛封路,住在天宫的同学过不来,比赛推迟了2个多小时。我们三个8点25就到体育馆门口了,也就是说足足在那等了三个小时。比赛开始的时候,我的脑袋感觉是混沌的。

比赛开始,我从前往后看,LC从后往前看,WYN中间看。中文题面,A、C貌似都和图有关、D是一个四边形,感觉可做,但是没有想法。LC在看I,给一个范围[l,r],求两个在其间的数 x,y按位或 起来值最大。WYN在看E扫雷,扫雷我没玩过,然后我让他看D。我仔细读了一下C题的题意,一边刷榜。10分钟后才开始有人过题,主要是I和E。LC在看I,于是我也去看E,学了一下扫雷,样例C(4,2)=6。感觉是一个dp,也和组合数学有点关系,但是因为它前一列和后一列是存在关联的所以总是很难找到一个准确的描述方式。在刷一下榜,H题也过了不少,于是我又去看H,H给一个整数序列,问连续子序列的异或值和给定的某个数的绝对值差最小是哪个区间,输出区间长度,n范围只有100。和WYN讲了一下题意,他马上说求一个前缀异或和有没有用?然后我马上想到了解法,预处理一下前缀异或和,然后两层循环暴力遍历所有子序列,记录一下答案即可。于是电脑终于用上了,我上去敲H题,很快就敲好了,测试一下样例没问题交了,1Y。这个时候已经35分钟了,看下排名53,感受到了压力。

做完H我感觉脑袋清晰了点,WYN和LC在讨论I,I这时候已经过了很多了,比H多。我继续看E,看着看着感觉自己被搞晕了,考虑当前一列的时候,它既受前面一列的影响,又受后面一列的影响。我试图从前往后或者从后往前推,忽略掉一边的影响,但是思想还是不成熟。

LC开始敲I题,但是敲一半停下来说有问题,于是我去看了一下,WYN跟我说了一下解法,是一个很明显贪心策略,也很明显是对的,不知道他们还存在什么疑问,我看了一下LC敲的代码,他只是实现了一下把一个整数化成二进制存在数组里,于是我接过来敲。现场比赛和在寝室做比赛真的太不一样,压力确实骤升!坐在我们对面的是厦门大学的,他们此时已经升起了两个气球。说实话心里很急,当时要求1<<tmp,我说tmp要不要减1,他们说不要,测试了一下样例发现没问题交了返回WA,我再推一遍,tmp要减1,于是减1再交,还是WA,再推一下,第一处循环里的要-1,然而第二处循环不用-1。确定无误第三次提交,还是WA!现在想想当时真的是太急了,其实这种边界问题很容易出问题是个常识,要是在平常比赛肯定就推一下,也花不了多少时间。但是因为这个问题却wa了两次,更悲剧的是目前还是WA,不知道错哪了。终于WYN输了一个很大的数据错了,发现是1<<tmp ,应该是1LL<<tmp。改完终于3Y,但此时排名已经将近100,已经处在铁牌区,罚时还高,很慌。

做E题吧,我和WYN讨论了一下,我说设dp[N][3],分情况+起来,最后答案是dp[N][0]+dp[N][1]+dp[N][2],很快,WYN说从前往后递推,第一列确定了后面的也就确定了,只要确定第一列放的个数就可以了。感觉这样做没问题,开始敲。

代码很丑的敲完了,题目要求取模,我看着那个数,数了一下,我对LC说,这是1e9+7吧,他看了一下说是。测试了一些数据,没问题,交,WA!发现在最后还是要判断一下是否合法,加上再交,还是WA。情况又陷入僵局,不知道哪错了,一直测试数据还是没问题。

我再看了一遍那个取模,100000007,我说1后面七个0一个7,是1e9+7吗?操,这不是1e8+7?!再交,还是WA!!!再次僵硬。

心里闪过一丝绝望,我说我去看A,再做两题我们还有机会。仔细阅读了A题题意,发现题目好像不难,只要把入度和出度都>=1的点找出来看它的每个父亲是否都有一条连向它每个儿子的边。n大小是2016,因为一定是完全图,暴力解复杂度应该在n^2多一点。打印E,我上去敲A。

敲到一半,WYN终于发现E的错在哪,在一个if判断里,应该是<=,我写成了< ,改,终于过了。看下时间还剩1小时02分钟,马上就封榜了,排名99。

我说还有机会,一起做A,做出来有铜。我把A题意讲了一下,说了一下我的解法,他们说应该没问题,但是可能会超时。于是他们两在推复杂度,我先敲完。他们最后的结论是不会超时,测试一下样例,过了,我说稳点,再错可能没机会,再构造几个数据都没问题,终于交了,结果还是WA!

真的很僵,你报超时也好,为何是WA!检查代码,没发现问题。看一下时间还剩30分钟,我说有没有别的解法?他们都摇头,我这时真的是很急,这题不过百分百打铁啊!

LC突然说能不能直接在矩阵上考虑,我想了想,发现可以!

看时间,还剩10分钟,不管,敲!

那10分钟大概才是我整场比赛脑袋最清晰的时刻,连草稿都没打,一边敲一边在心里演算。终于敲完还有2分钟,测试一下样例,没过,加一下初始化,样例和自己构造的数据都过了,先交一发。

不等返回结果在数组开大500再交一发。

59分的时候返回了一个re。

我顿时发现有两个数组不能值开N,赶紧改N*N,最后一刻交上去了。STOPED。

忐忑中等待,一个re。

还有一个。TLE,呵呵。

打铁了。我欲把沙子握的更紧,沙子却从我手心流走的越快。

0 0