今年的比赛最大的变化就是改用OJ判题了,相比于PC^2确实省事了不少,至少可以直接复制样例了。题目方面依旧是刘汝佳命题,这点还是相当好的,至少给人以足够的安全感。

开始比赛之后安叔瞬间就把前半部分题目抢过去了……想到可能前面的题目会比较简单我就让安叔分我一点,然后安叔就把A丢给我了,接着很快安叔就决定上去敲C了。于是我就开始默默地看题了……A是找个最长的近似回文子串,算了一下暴力没问题,然后又看了H,完成区间加和查询单点就可以了,但是又仔细想了一下其实排个序+二分+前缀和更好写一些,这时琦琦又给我拿来J,我看了一下虽然变量范围很大,但是因为前面是三次方,后面只有一次方,实际上可以将左边的变量的范围缩小到1000,直接暴力枚举一下就可以了,这个题也比较好做。再接着琦琦又让我看了一下B,想了一下直接用链表模拟就可以了,只不过写起来可能略复杂。后来我还看了一下F,只不过没仔细看,感觉直接最短路就可以了,但是在边那里转移的时候要分情况讨论一下。因为这时安叔刚好写完了C而且发现没过样例,我就没再仔细想F了,赶紧让安叔打了一下C的代码我就上去敲J了,并把手头的题简单排了个序JAHBF(不过后来才发现其实F比B要好写的多)摞到了面前,并叮嘱了一下琦琦不要抢我的题。

在我敲J的期间,安叔发现了C的bug,改了一下然后1A了,接着我也很快敲完了J,1A。然后就去写A了,敲了几行之后觉得A还是有点代码量的,于是就问了一下琦琦G是不是很好写,琦琦说很水,于是就先让他去敲G了。G题1A之后我就继续写A了,但是写完之后发现没过样例,而且长度那里差的很远,仔细读了一下题才发现原来子串长度是包含那些不是字母的字符的,后来赶紧改了一下交了,结果返回了WA,于是赶紧打了代码把机子让给了队友。查了下代码发现自己后来改代码的时候忽略了回文串长度为偶数时,一开始要先把两个点中间的非字母字符的数量加到结果中去,改了一下2A了。

接着我继续按原来的顺序敲H和B,两个也都1A了,因为之前本来就没仔细想F,所以决定还是先写一下F的转移方程,于是就让安叔先去敲I了。列完转移方程后才发现原来F很好敲,于是赶紧把机子要过来拍了一个Dijkstra,1A。不过后来安叔I题遇到了些问题,用Dijkstra敲完之后T了,我看了下代码之后觉得有些小地方可以优化,不过改完交还是T,于是就考虑是不是确实算法复杂度有些高。上个厕所回来之后觉得可以直接开两个数组去记忆化搜索,但是安叔问我乘0操作可能会产生环,这样会不会出问题。我细想了一下发现其实只有乘0操作才可能让数变得更小,而且如果要变成0的话那么必然是一开始就乘0代价最小(或者x本来就是0),所以一开始就把0这个状态赋好初值就不会出现环的问题了。于是我上去重敲I,调了之后就1A了。这是就只剩下D和E了,我决定先和琦琦搞定E,D自然就留给安叔去想了,剩下的比赛中也基本在交替地敲D和E的过程中度过了。

其实E在我敲水题的时候琦琦就已经有想法了,我们商量了一下后决定他敲计算几何部分,我敲dp部分,也不大记得这两部分是在什么时候敲的了,但是最后敲完之后发现没过样例,而且是计算几何部分的代码存在bug,在I题A掉之后我就和琦琦一起开始查bug了。很快琦琦还是找到了bug,但是交上去之后却WA了,我们便开始想是不是还有特殊情况,很快琦琦又找到了一些特殊情况,但是我们都忘记先构造几个样例了,琦琦改了代码交上去之后还是WA,在构造了之前想到的特殊情况的样例之后才发现改完的代码压根没解决这样的样例,只是我们以为改好了而已,于是就这样白白WA了一发……最终我们还是把代码改好了,大概在结束前30分钟A掉了这个题目,剩下的时间就都给安叔去敲D了,不过由于D确实还是有些复杂,最终结束时也没能敲完。

从比赛的整体过程来看,我们还算比较顺利。在比赛前一天我就提醒了一下校队的队员们不要在机子上调试,因为省赛可做的题目还是很多的,在机子上调试太浪费时间了,所以这次我们基本都是打印代码进行查错了,事实也证明这样确实节省了不少时间,我们机子基本都用在了开题上面。不过这次1A率还是偏低,我心目中的1A不仅仅是交上去之后就能AC,而应当是敲完之后不用调试就能过样例并AC,但这次我们却在很多时候敲完之后发现过不了样例,于是改为打印代码去查错,这样还是浪费了不少时间的,后面还是要加强自己思维的严谨性以及尽量降低代码级别的错误。

在回来的路上,我告诉琦琦如果今年我考研顺利话一定还会再来一年,到时候我们剑指final。自从CSU_BMW解散之后我已经一年没有训练了,在这一年里我用代码做了很多有趣的项目,暑假也去金山云实习了一个多月真实地体验了一下IT男的感觉,但总觉得这一年心里没有了一年前那种很踏实的感觉,总觉得自己还有未完成的事情。从我在初入ACM就在博客上写下“我要把中南带进世界总决赛”开始,这个梦想就从未扑灭过,如果明年还有机会,我愿用明年所有的时间再一次践行我的承诺。

2013年ACM湖南省赛总结的更多相关文章

  1. [2013山东ACM]省赛 The number of steps (可能DP,数学期望)

    The number of steps nid=24#time" style="padding-bottom:0px; margin:0px; padding-left:0px; ...

  2. 2016湖南省赛 I Tree Intersection(线段树合并,树链剖分)

    2016湖南省赛 I Tree Intersection(线段树合并,树链剖分) 传送门:https://ac.nowcoder.com/acm/contest/1112/I 题意: 给你一个n个结点 ...

  3. 第六届acm省赛总结(退役贴)

    前言: 这是我的退役贴,之前发到了空间里,突然想到也要在博客里发一篇,虽然我很弱,但是要离开了还是有些感触,写出来和大家分享一下,希望不要见笑.回来看看,这里也好久没有更新了,这一年确实有些懈怠,解题 ...

  4. [原]sdut2624 Contest Print Server (大水+大坑)山东省第四届ACM省赛

    本文出自:http://blog.csdn.net/svitter 原题:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&am ...

  5. 2014 ACM省赛总结

    今年ACM省赛已经过去一个星期左右了,2年的ACM训练是该做个总结了,因为前几日去參加蓝桥杯总决赛,所以没来的及写总结,如今在这小小总结一下吧-- 依晰记得去年省赛时候的样子,如今感觉那时像是个无知的 ...

  6. 第一次参加acm区域赛

    什么,这周天就要去参加acm焦作赛,简直不敢相信.从大一暑假七月份中旬到今天十一月23日,加入acm将近四个多月的时间,如今到了检验自己的时候了.aaaaaaaaaa.乌拉,必胜.打印个模板,在跑个步 ...

  7. 记:青岛理工ACM交流赛筹备工作总结篇

    这几天筹备青岛理工ACM交流赛的过程中遇到了不少问题也涨了不少经验.对非常多事也有了和曾经不一样的看法, ​一直在想事后把这几天的流水帐记一遍,一直没空直到今天考完C++才坐下来開始动笔.将这几天的忙 ...

  8. 2017 湖南省赛 K Football Training Camp

    2017 湖南省赛 K Football Training Camp 题意: 在一次足球联合训练中一共有\(n\)支队伍相互进行了若干场比赛. 对于每场比赛,赢了的队伍得3分,输了的队伍不得分,如果为 ...

  9. 2016湖南省赛----G - Parenthesis (括号匹配)

    2016湖南省赛----G - Parenthesis (括号匹配)   Bobo has a balanced parenthesis sequence P=p 1 p 2…p n of lengt ...

随机推荐

  1. 用JS制作简易的可切换的年历,类似于选项卡

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 30.0px Consolas; color: #2b7ec3 } p.p2 { margin: 0.0px ...

  2. error C2275: “XXX”: 将此类型用作表达式非法

    在移植c++代码到c的时候,经常会出现一个奇怪的错误,error C2275: “XXX”: 将此类型用作表达式非法 表达式非法,这个错误是由于c的编译器要求将变量的申明放在一个函数块的头部,而c++ ...

  3. Nginx 常用伪静态配置

    1. /a/b?c=d => index.php?_a=a&_m=b&c=d 2. /xxx/detail-yyy.html => index.php?_a=xxx& ...

  4. [转] 基于ArcGISServer实现活动地图标注

    ——王嘉彬(Esri中国上海分公司) 1.背景 1.1.主流互联网地图应用的现状 在目前主流的互联网地图应用中,如 Google Map(图 1).搜狗地图(图2),POI 兴趣点的文字标注越来越多的 ...

  5. dispaly 的block与inline-block的用法

    一直以来没有弄清block与line-block的用法,今天花点时间整理一下. <body> <div class="div1">div1</div& ...

  6. JAVA的String的传值和传地址问题

    关于Java的String类型,可能你会碰到这种情况,将String类型的变量传到一个函数,在这个函数中修改变量的值,但是,实参的值并没有发生改变. Java中String的传值/传地址问题: 例子引 ...

  7. mysql 5.6并行复制事件分发机制

    并行复制相关线程 在MySQL 5.6并行复制中,当设置set global slave_parallel_workers=2时,共有4个复制相关的线程,如下: +----+------------- ...

  8. [Xamarin] 簡單使用AlertDialog (转帖)

    這東西跟Toast 很像,有方便提示的作用 像是Windows 上面的MessageBox 或是 Javascript 的 Alert 會先阻斷使用者並且下一個決定 很簡單我就不贅述,基本上透過 Al ...

  9. MySql、SqlServer、Oracle 三种数据库查询分页方式

    SQL Server关于分页 SQL 的资料许多,有的使用存储过程,有的使用游标.本人不喜欢使用游标,我觉得它耗资.效率低:使用存储过程是个不错的选择,因为存储过程是颠末预编译的,执行效率高,也更灵活 ...

  10. Nginx学习笔记(七) 创建子进程

    Nginx创建子进程 ngx_start_worker_processes位于Nginx_process_cycle.c中,主要的工作是创建子进程. 在Nginx中,master进程和worker进程 ...