2017 ACM-ICPC 南宁站 总结!

2017 ACM-ICPC 南宁站 总结

 附上榜单:http://acm.gxu.edu.cn/board-2017-regional/

 滚完榜后还是有点遗憾,封榜后竟然这么多队过了6题,虽然铜牌是稳的,但没有时间去写H题,反而把M题做出来了,丧失冲银良机。

 Day 25

 中午到达南宁,外面在下雨,出火车站直接就是地铁站了,两站到达广西大学,然后淋着雨找体育馆报道,领完东西时间还够,正好饭点,不过食堂弥漫着一股的气味(酸竹?),一张餐票一份盒饭,胃口不是很好,宾馆离学校有点距离,吃完了就直接去体育馆等开幕式了。体育馆竟然比外面还冷,背后时不时吹来一阵阵冷风,预示着凉凉?开幕式的时候已经冻得发抖了,不自觉地在流鼻涕,参赛服竟然是8月份邀请赛的衣服,心灰意冷。热身赛开始前两题题面很长,然后继续往后翻,C题扫了一眼题意,求四个数(不超过四个数)的和不超过的M的最大值。没什么想法,把题意扔给队友,然后队友说后面还有一个题,我去,然后去看D题了,扫了一眼发现是个水题,C题队友很快出思路了,然后D题也确定了,我回去读AB题了,一眼不可做的样子,读了会B题发现晦涩难懂也不会,然后切A题了,C题队友写了一会然后测样例,我们又出了几组样例,发现一个细节有问题,又扫了一眼题意发现是不超过四个数相加,队友没有去确定题意,然后我直接先上去写D题,队友下来讨论,一会他们就调整好了思路,D题也写出来了,测试后没什么问题交上去半天才回来一个YES。我继续读A题,队友修改C题,不一会也好了,不知道他们什么时候交的应该是YES了,然后就看到他们打开榜单发现竟然金牌第8,eee。把B题跟他们说了一下是个不可做的题,然后把A题告诉他们了,另一个队友测试java,我们讨论A题,数据范围不大,但数据组数较多,队友说floyd可以写,然后他开始打,我继续想,后面理解了他的想法,感觉没什么问题,把题意和另外一个队友说了,我就帮队友写A题,细节处理我们想的不一样,但代码是他在写,于是我就按着他的想法帮他修改,顺便出出样例,写了一会测试样例debug,然后测试我出的样例,发现了bug,然后停下来修改,我提了一种方案,但感觉像是凑样例,说不上对不对,后面不知道他们怎么想的又觉得是正确的,然后继续debug,测测样例感觉没什么问题了,提交半天返回个WA,然后申请打印代码,结果快结束的时候才送过来。。我们也不知道怎么会错,时间剩下不多,也就懒得写了,直接测试环境。热身赛打的很随意,不过举办方应该是没什么经验,开场给对面送来一个气球,人家没有过题,我们过了两个题结束也没见到气球,打印代码很慢,志愿者一问三不知,中途电脑还卡顿了很久,旁边队伍说CE榜单上也算上了罚时,而且提交没有返回结果,卡在PC^2里了,榜单也是错误的。各种问题。。晚饭后回宾馆两个队开了两间房,我们直接把两张床合并了然后去问前台要了一幅生活用品,又问清洁大叔要了一床被子和一个枕头,感觉大叔人真好哇。晚上订好了回去的车票,也没商量什么策略,来直接训练了很久,状态还行,之前打的几场比赛我们该调整的都调整了,所以也没什么说的了,最后一场就放手打吧。

 Day 26

 早上很早起来吃早餐了,外面没有下雨,排了很久的队办理退房手续。到体育馆快50了,刚坐下举办方就宣布开始发放试题,ee。题目也没有封装,直接可以看题,然后A题扫了一眼,题面很长,往后看了看没发现什么签到题,先让队友配置环境,A题感觉应该很水,把样例理解了一下发现不难,直接上手打了,比赛还没开始,打好了测试样例感觉没什么问题,场上很多人过了然后也直接交了,一会回来个WA,我马上去看题,队友帮忙看代码,发现少打了个字符。。。改回来后交上去返回Yes。然后刷了一下榜单,发现L题和M题都有人做,L题题意很短,开场队友就在看了,队友让我去看M题,他来打L题规律,但F题好像过的人多,然后我去看F题了,题意很快明白了,发现样例很有特点,模拟了一下,发现规律了,要用大数预处理,队友直接上java,我回去看M题了,写了有一会表打出来了,队友没交过java,于是把表粘到codeblock里面,再处理了一下,测试样例,没什么问题后交上去返回YES。队友继续打表找L题规律,我把M题题意告诉另外一个队友,然后解释了样例,我觉得就是一个裸的最小路径覆盖,但得用floyd预处理一下,看了看时限,可能会超时,榜上也没什么人过,于是开其他的题了,榜上J题过的人也多了起来,于是开J题,题意也很快懂了,我和zp来攻,另一名队友用java去打表,J题感觉不难,可能细节需要处理一下,我们在最优策略上商量了很久,大致思路有了,但细节还是不好处理,我们可能想复杂了,我把情况列出来,发现很好写了,但队友出了一组样例说有问题,我们又不知道怎么处理了,队友的代码写的有点复杂,我感觉不是这样,然后把我的想法和他讨论了一下,代码很好写,几个if else判一下就行了,但队友在一种情况上存在纠结,他觉得不是这样处理,又修改,我把之前的样例推了推,发现也是可以处理的,然后把代码又改了回来,样例测试都没什么问题,提交上去返回YES,这个题我们做了很久,细节考虑得太复杂,然后继续找L题规律,队友把表打出来,发现预处理不可行,数据太大太多,但我发现队友的打表打错了,数据范围用错了,然后改回来跑出来的结果很少,这样就可以预处理了,但是得找到递推式,一时半会也没找到,但榜上过了好多队了,我们排名很靠后,队友让我打M题,反正电脑也是闲着,于是他们找规律,我直接开始打,也不知道想法对不对,但感觉很正确,估算复杂度最坏可能会超时,被上场杭州赛区的卡常卡出阴影,但是优化一点也许能过,代码一会也写好了,测试了各种样例都没什么问题,就想着交一发试试,也不奢望能过,然后直接把代码打印下来了直接离开电脑了,过了一会返回个YES,真是出人意料,开场就知道做的题却一直不敢写。。。看了看榜竟然在铜尾,难道要像沈阳赛区那样了吗。L题规律必须做出来,我们三个人一起推,应该是这个时候我发现表打错了吧,然后把打出来的结果申请打印下来,看了看榜I题不知道什么时候过了80多个队了,不知不觉就过了这么多队,于是我立刻去读I题,是个博弈题,数据很小,没思路,于是跟队友调整题目,他们两个去攻I题,我来找规律,找了一会没发现什么规律, 倒是他们很快就确定了I题怎么写了,然后立刻上手打,我不是很放心,于是让他们两个人一起,我继续攻L题,突然发现差值序列的规律了,这样就可以预处理ans序列了,然后惊呼一声我知道了便去上厕所了,回来队友还没懂我的想法,然后和队友说了一下,队友不是很明白,让我用公式列出来,当我用公式的时候却发现同时相减竟然消掉了,只知道关系,还是无法确定数值,I题他们打出来了,然后测试样例,我胡乱造了几组也不知道答案,测试感觉没什么问题果断选定提交,一会返回YES,铜牌稳了,看了看榜铜牌区上游,再做一个题可以冲银了,于是我们一起攻规律题,全场题竟然卡我们这么久,队友理解了我的想法,但是这样还是行不通,看了看榜发现H题不知道什么时候又过了80多个队,也是神奇,悄无声息的感觉,于是队友让我去读H题,不能再一颗树上吊死,封榜还有几分钟,在做一个题完全有可能,况且过了这么多队了,我去开题了,顺口说了一句把两个序列加起来试试,然后队友就找到规律了,理了理确定了完整思路立马上手写,还是要用到java大数,队友催我快点读题,这个题已经稳了,我倒是有点不放心,他们入果稳稳的把那个题做出来就很不错了,就怕被卡住,我们罚时多很可能被挤出去,H题题意也不太明白,很迷,只能一个单词一个单词查找,理解,但心完全放在他们那,还是之前的方式,用java把表粘到codeblock里面,然后用C++提交,这样虽然耽误时间,但是更稳。规律没错,代码很快也写好了,调调改改,然后各种测试,基本没什么问题,还好队友沉住气了测试最后一个数据的长度,发现有问题,原来没粘完全,于是又改了改,测试后都没问题了,我还是比较啰嗦的强调了一下数组大小、数据范围、输入输出等等细节,队友说没问题了,然后选定提交,很自信的返回了YES。这时封榜已经20分钟左右了,然后算了算罚时800多,银牌没戏了,但铜牌区靠前还是可以的,H题我直接就不想做了,题意很迷,但时间又剩了40多分钟,然后把题意一个一个翻译给队友,但我们都已经放松下来了,开始吃面包了,翻译过程也很艰辛,我实在理解不了,也不好怎么和队友表达,样例也迷,关键点就强行给队友说了意思,然后输入输出队友让我再解释一下,我还是不明白,队友说10分钟题意,10分钟代码,虽然感觉很好笑,但我们也不好直接放弃不做了,于是继续理解,队友说是个sb题,然后强行理解的输出,我倒觉得没这么简单,很多队很快过了6个题,但第七题很久没出来,我觉得也不好写,但我却忘了他们第七个题是卡再哪个题上了。。另外一名队友说想用java测试一下,因为没交过java,我们也没阻止,H题队友直接上手强行写,我倒有点放松了,我觉得题意可能没有这么简单,这个题可能不是这样的。也不知道时间怎么过得这么快,还剩3分钟,队友推了一下键盘说写不出来了,时间不够了。比赛就这样结束了。


   滚榜发现我们6题后是rank 74,但终榜是100,竟然这么多队都过了题,还是有点不可思议,也有点失落,还以为铜牌区能比较靠前,结果被挤下这么多,什么心情都没了。银牌区6题610以内的罚时。我们除了A题被我sb写错了一发,其他的题都是1A,稳是稳,只是过的比较慢,F题明明很简单,却在细节上浪费了很多时间,到头来发现原来想的是正确的,M题开场就会结果不敢写,等到其他两个题过了没办法了才上手试试,也许是运气好吧,一发就过了,但也许胆量也不够大,导致100多罚时。最可气的是L题全场都会的题竟然卡了我们四个小时,封榜了才过,又100多的罚时。也许这些做到极致了我们能留下两个小时写H题呢,银牌也是稳稳的,但也许也许,结束了再去说什么意义都没有了,这也只是给心里找的借口蒙蔽自己。

   总结:

   这是今年打了四场比赛两场CCPC铁所总结下来的,也不光是本场的总结。

   这场比赛在比赛结束后和滚榜之前我还是比较兴奋的,除了省赛也没有在正式赛场上过过这么多题,也是觉得自己离银牌很近的一次,但滚榜发现自己竟然掉到了100,心理直接跌到谷底,这个成绩和铁有什么区别呢。回来总是在想如果可以如果可以。队友读题能力很差,几乎都依赖我读题,这也导致很多比赛我们因为题意错了而白白浪费很多时间,这场比赛题目还是我读的,倒也还幸运没有读错而且不用队友去确认题意,前几场的策略是代码一定要经过两个人查看再交,题意也一定要两个人都读过了,我们的个人实力有欠缺,我一个代码手去读题,很多我擅长的就没有发挥出来,交流困难也有可能会误导队友,也有可能导致过分依赖队友读完题直接扔给队友都没有思考过。细节处理还是有欠缺,L题的表打错了直接浪费很多时间,打表的姿势和正解插肩而过。代码能力方面不足,代码写出来编译各种错,还得一个一个调,运行的结果和自己预想的完全不一致,还得一点点去模拟代码跑的过程。很多时候总是会范数组开小的导致超时等问题,输出空格或换行等问题,数据范围中途相乘会不会溢出等问题,虽然平时训练都能碰上,但正式赛还是有可能犯,心里急才是根本原因,把题目样例随便一测就直接提交,没有细心去想更多的样例,20分钟罚时可太划不来,还会耽误时间去找bug,修改再次测试。在常见的问题上如果都能避免,那比赛就是比真正的实力了,基础好了,那么思维是否迅速呢,细节考虑是否清楚呢,代码能力是否够强呢。一个人有足够的实力一个题确定了思路就可以自己上手了,三个人完全可以单独作战了,但实际上很多队都有缺陷,所以需要配合好发挥出实力,我们队就是一个代码能力不行,两个读题能力不行,思路的话倒是可以大家一起讨论。我倒不是埋怨队友,只是对我们队作个分析。


  沈阳赛区:

   签到题被我上手错三发,开场没看到签到题,后来有点心急,扫一眼知道是四个数相加,数据范围都没确定测过样例就直接交了,看到了后改成lld却忽略了long long 最大才2^62次左右,改成unsigned long long 后竟然又忘了在最后面手动加一,输出也忘了改llu。回想起来简直失了智。G题大数很早就找到规律了,用的c++的大数预处理出来没发现文件交错了竟然一直RE,还以为是我们代码有问题,于是换了各种板子,这种低级错误是多么不应该。

  然后我再也不敢写代码了。。

  秦皇岛赛区:

   开场一个水题居然懵了一会,20多分钟才过,不过倒是很符合我们求稳的策略,3个题后rank 55,然后就卡死在第四题一个水几何题了,开始的求距离排序的思路忽略了r很小的情况,死活不知道wa在哪里了,后面改成了求面积排序的思路,居然被哈工大的几何模板坑了,那个模板求不出圆嵌套的面积,死活不知道wa在哪,惨痛打铁。

  杭州赛区:

   一如既往求稳的策略,一个题两个人确定后再交,题意至少两个人读过,卡题至多1个半小时果断切题。开场秒了两个题,rank 51,第三题数论题大家心里有点虚,发现可以化简后思路秒有,我想的爆搜,队友想的二进制枚举,但忘了计算复杂度了,以为是一样的,于是帮队友写,结果写了近1个多小时才写出来,样例各种测试,各种debug又花了好久,提交居然TLE,很快想到可能会卡常,于是改成快速乘,还是TLE。队友拉我去做D题,还好切了,不然要惨死在2题打铁的佳绩下了,D题一会便发现规律,然后心急预处理有问题没发现WA了一发,然后又改了好久才A,然而晚了。B题后面改成爆搜居然还是TLE,结束被人提醒才发现爆搜的复杂度少了10,但为什么还是TLE,队友回来发现是快乘的锅,把快乘改成普通乘法居然1s不到,但加上去居然跑了4s多。。。。

  连续两场CCPC铁的好心痛,回来停课集训怒训练个人赛和组队赛,状态迅速回升。

  南宁赛区:

  A题心急没有发现少打了一个字符,全场除了我们队几乎都是1A。L题队友打表方式不对,和正解插肩而过,银牌题1A,铜牌题却没时间写。个人代码能力不行,读题能力也不行。







  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ACM-ICPC(国际大学生程序设计竞赛)是一项面向大学生的计算机编程竞赛,涉及算法和数据结构等领域。在比赛中,选手需要解决一系列编程问题,使用合适的算法和数据结构来实现正确和高效的解决方案。 对于整理ACM-ICPC模板,以下是一些建议: 1. 了解比赛要求:首先,你需要了解ACM-ICPC比赛的具体要求和规则。这包括了解比赛所涉及的算法和数据结构,以及题目的类型和难度等。 2. 收集资料:收集与ACM-ICPC相关的资料,包括经典算法和数据结构的实现代码、常见问题的解题思路等。可以参考教材、博客、论文等资源。 3. 整理模板:将收集到的资料整理成模板。可以按照算法和数据结构的分类进行整理,例如排序算法、图算法、字符串算法等。对每个模板,添加必要的注释和示例代码,以便理解和使用。 4. 测试代码:对每个模板编写测试代码,确保它们的正确性和可靠性。可以使用已知的测试用例或自行设计测试用例。 5. 更新与扩充:定期更新和扩充模板,以适应ACM-ICPC比赛中新出现的算法和数据结构。同时,根据自己的经验和理解,对模板进行优化和改进。 6. 练习和复习:在比赛之前,利用整理好的模板进行练习和复习。尝试解决一些经典问题,使用模板中的算法和数据结构进行实现,并进行优化。 希望这些建议对你整理ACM-ICPC模板有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值