这次比赛题目改了,时间改了,规则改了,连测试数据都改了……
先总结一下,再写流水账……
两个字形容这次比赛就是难,乱
有人建议比赛改名“有三道难题”
题目很难,场面很混乱,网易有道先后上演了改题目,改规则,改时间,改数据……
另:ACRush大牛,太强悍了……膜拜Orz
题目地址
http://poj.youdao.com/nanti4/
7点比赛准时开始
看了第一道题目,看不懂
看了第二道题目,看懂了,感觉肯定做不出来,要是能写出来我就写个CYSQL去……
看了第三道题目,也看懂了,不过明显感觉挺难的,还带高精度……不高精度都想不到办法……
先想了一下第三题看看能不能想出个算法来,想来想去想不到,时间过了半个多小时了
回到第一题,仔细看了第一题题目,在一个多小时的时候(画外音,此时没有一个人AC题目,说明这次比赛确实很难,不是我水平太挫……虽然是很挫……)突然发现第一题原来很简单(事后发现我想错了),先判断每一个点能否跟第一个点连,再判断能否跟最后一个点连,能的话就想办法输出结果。判断当然是用的并查集,于是乎就写并查集,写得不亦乐乎,然后并查集写完了准备写输出,发现想错了……前面全部白写……(画外音,这时候大概时间是2小时不到点,好像有一个人AC了C题,另外就没人AC题目了,情况就是大家都是0分……基本确定不出意外的话做出题目的人不会太多,只要过了一道题目,即使是A的50分也能过!)调整了一下情绪,重新审视了一下题目,仔细想了一下题意,想出一个算法,大概思路是初始状况是一个只有两个点的链表,起点和终点分别是给定的点。之后从起点开始找路径,规则是无环,终点是已经在答案列表里面的任意一个点(初始的时候只有起点和终点),找到之后把找到的路径除了起点之外所有的点都插到找到的路径的终点的前面,作为答案的一部分。把答案的第一个点能够满足条件的都找过之后就从第二个点开始找,停止条件是找到最后一个点或者所有点都已经在答案里面。看起来复杂度挺高,实际上仔细分析复杂度是比较低的~~提交,发现WA,改,WA,改,WA……悲剧中……(画外音,这时候大概两个多小时好像,只有两个人AC了C,其他都没人AC,而且两个人之中有一个是临时账号……没有参赛资格那种……所以说情况其实还不错),然后这时候发现规则居然改了……改成按数据点给分,而且第一题前一部分数据变成99分(出现了大量45分党,直接输出NO……),马上提交,15分,大悲剧……总分99分话说……于是乎就找啊找的……改了一些细节错误,到了40多分,继续改啊改……发现用vector保存边,一开始是开一个MAXN的vector数组,然后直接构造函数+析构函数的时间就几乎超时了……改成指针动态创建……节约大量时间,然后又改了一些错误,发现结果是93分,看了一下,居然没有人过A,最高就都是93分,说明可能题目有问题……(画外音,大概三个多小时的时候吧,时间改了……延长一个小时,而且B和C也按数据给分),于是准备看看C能不能骗点分到。
一开始想到了个贪心的办法,于是写高精度,写到11点不到点,这时候发现有人过了A了!于是重新提交了一下A,发现居然AC了……看来改数据了……悲剧……发现写高精度不是办法……速度太慢了……正负处理起来太麻烦了……干脆放弃高精度,直接long double骗分!(仿佛回到了NOIP……我想起了骗分导论……,画外音,这时候大概有50人AC了A,晋级应该问题不大了)写了个贪心,发现样例都过不了,想了下,又重新改了一下,终于把样例过了……于是不解释,提交,WA,意料之中,具体分数要rejudge之后才知道了,最后时刻,看了一下B,写了个直接输出\N的程序,运气好能骗到分的说……基本上比赛时间差不多了,吃了点东西压压惊,比赛结束之后,总共事实上AC了题目的有90人,有几个是AC了C的,大部分是A拿了99分,晋级应该问题不大,小台灯,我来了