题目和题解点这里:http://www.cnblogs.com/zufezzt/p/8648892.htmlhtml
24号,学校一年一度的程序设计竞赛结束了,这一次是我和两个学弟命题的,还有一些人进行了题面书写、review,还有一部分人帮忙进行了验题。因此我想记录一下此次命题的详细过程,之后能够成为一次美好的回忆。算法
大概从元旦前夕开始,逐步有了一些 idea,有些很 easy,有些很难(估计是我太菜了)。大概在过年的那段时间,有了一些比较好的 idea。接下来逐题说一下每一题的 idea 诞生过程,感受每一题背后都有一些小故事。数据结构
A 题:这题是比较晚才肯定的,当时缺一个简单的贪心签到题,而我那时几乎又被榨干了,因此我让两个学弟(张海栋,王豪)去摸索 idea,结果他们给我说了 6 个不一样的版本,这题是其中一个版本。以后张海栋进行了一波严格证实,表示排序必定是最优解。(若是无法严格证实,咱们就要换题了呗)ide
B 题:这题是在寒假期间肯定的,由王豪提供 idea,感受这题仍是不错的,看着好像很慌,仔细画一画发现并不恶心。优化
C 题:这题我拿来凑数的。感受这题出的是最烂的,很无聊。不过在写 std 和出数据的过程当中发生了一些比较有趣的事。idea
D 题:这个游戏通常参加过学生会或社团的同窗应该都玩过。然而王豪在一次玩这个游戏的时候,想到了这个问题。仔细分析并不难,能够归结到经典的 nim 取子游戏。感受这题比较接地气,毕竟游戏规则你们都懂。翻译
E 题:这题的 idea 诞生比较扯淡,寒假里有一场牛客网比赛Wannafly挑战赛10,其中的 B 题,当时看错了题意。看错后的题意就成了这个 E 题。设计
F 题:这题也是比较晚肯定的题,当时缺好几个 easy 题。我就开始疯狂想 easy 的 idea,而后就有了这个 F 和最后的 M。这题王豪直接扔了一个简单优美的公式搞定了。code
G 题:这题本来不是这样的,最初的 idea 是给出一个矩阵,能够把 -1 替换成你想要的任意一个数字,而后最终得分是每个连通块大小平方的和,想了半天不会(若是有大佬会还请留言)。后来我把矩阵换成了序列,就能够搞一搞了。这题是这场比赛中我以为最棒的一题了。htm
H 题:这题也是本身想的 idea,不过 HDU 的岑肃廷大佬说这题是 WF 的弱化版。当时想到这个 idea 时,并不知道 WF 题长什么样。这题最初的版本:平方那部分是绝对值,这样能够斜率优化搞。改为平方和,斜率优化好像不能来了,但决策单调性并无被破坏,所以就这样了。最后顺便和王豪把 WF 那题也撸了一下,确实那题好强啊。
I 题:这题最初的版本是个一个长度为 10 万的字符串,在这个字符串的全部排列中,找到字典序第 k 小的,k 有 1e18。后来发现这个版本很不人性化,写代码的时候要判爆 long long 之类的,因此弱化了一下,改为了这题如今的样子,比较和谐。
J 题:这题是放寒假以前,有一次和学弟去吃中饭的路上瞎聊聊到的,“欧拉路径是每一条边走一次”,“哈密顿路径是每一个节点走一次”,“那么欧哈密拉顿路径呢?岂不是一条链。”,而后这个 easy 题就有了。
K 题:寒假在家闲着没事干,瞎想。因而题目来了。
L 题:这题一开始的版本不是这样的。那时候以为缺一个构造题,因而我就乱想了一个题。就是把这题去掉 4,5 两个条件。正常人几分钟就知道怎么搞了,定位为 easy 题。王豪以为太简单了,加个对角线的条件试试,后来他开始手动构造,构造出来了一些,但没有发现明确的规律,因而乎咱们开始爆搜,他一开始写错代码了。我上了几发以后,发现爆搜贼快。因而这题就有了。
M 题:同 F 题,同一时期想出来的 easy 题。这题有两个版本,这个版本比另外一个复杂一些,还带一些坑,因此有用这个版本了。
idea 想完后,我回到了学校和他们开始了正式出题工做,这题命题流程较为规范,咱们用了 codeforces 提供的命题平台 —— polygon。真的是一个很是好用,很是棒的平台,帮助咱们大大提升了命题的效率以及准确性。因为命题组英语水平较为奇特,我先分配了几题分开写题面,王豪英语水平好像仍是我略高一些,因此我让他主要负责写 validator(数据范围合法性验证) 程序,std(标程) 程序,以及生成数据的程序,以及一些答案错误,超时的程序;在他写程序的同时,我和张海栋疯狂写题面,感受我这种英语真渣渣简直要疯了;史海虹大佬因为平时业务繁忙,我分配给他了几题题面的书写(D题,F题,M题),包括在后期 review 的时候,史大佬的题面是改动次数最少的,不愧是读过书的高级知识分子!
在题面搞得差很少完工的时候,咱们找到了陈铭洲大佬帮忙一句一句 review,通过一番大改动,题面终于能让人看懂了。(我很佩服他是怎么看懂题面的)
下面讲一下每一题在出数据,写题面过程当中的小故事:
A 题:张海栋抄来一段孟姜女的故事,通过一顿修改,有了故事第一段,我给他配了几张图,而后题目主要部分写的看不懂,我和他就改造了一下,差很少是最终看到的那样。造数据却是没什么奇葩故事发生,后来张海栋证实作法的正确性。
B 题:一开始题目不长这样的,我给王豪看了个什么东西,他忽然灵感大发,来了这个 idea,我听了以后好像以为不错,就留下来了。造数据好像也没发生什么奇葩故事。
C 题:这题我先写了一段中文题面,而后交给张海栋去写英文题面了,写完还配图,真贴心。他造完数据,写完代码,跑数据,发现死循环了,后来发现存在负环,spfa一直在那绕圈圈,出不来了... ...因而乎他去研究消圈算法,未遂。
“出题人不会作怎么办?”
“那就改为有向无环图呗,不就会了。”
但愿有会的大佬教咱们一下。
D 题:中文题面我写了一波,交给史海虹大佬去翻译了,翻译完了简洁明了,很是到位。造数据好像也没发生什么奇葩故事。
E 题:这题数据和题面都是毒瘤,初版题面是我和张海栋写的,英语太烂了,表述的很烂,后来陈铭洲大佬帮忙大改了一通题面,有了如今的样子;这题出数据是个技术活,反正各类搞。。搞了一大堆数据进去。。
F 题:史海虹大佬写的题面,太强了;王豪负责造数据。好像他造完以后答案没爆int?被我增强了一下,记不清了。反正把一些浮点数作的卡掉了,写的很差会掉精度,整数运算最稳。
G 题:我亲手写的题面,真的是要命了。。读题者估计一看就能发现题面画风和先前的不同,由于这是我写的。。。。在最后快完工以前,我造了很多数据,张海栋手造了几组。
H 题:这题题面很短。王豪造了一波数据,我就故意写暴力,AC了,而后增强数据。
I 题:张海栋写的题面。王豪造数据,我记得他手动造了不少数据。
J 题:张海栋写的题面。王豪造完数据以后,发现两人代码好像跑出来结果不同,王豪发现张海栋没考虑到一条链一个环的状况。而后让我写,错了两次以后我对了,而后他们开始修他们的bug,最后我还增强了很多数据进去。和张海栋也手造了不少。
K 题:我写的题面,让王子恒和杭电岑大佬验的题。出数据好像没啥故事。
L 题:我写的题面,我写的 SPJ,王豪造了一波数据,王子恒验题是发现数据水了,没有出 K<0 的数据。。。我后来和王豪又加了几组。
M 题:史海虹大佬写的题面,某天晚上张海栋发现此题有坑。王豪造的数据,我去验题,我故意写错的代码,发现 AC 了,写暴力模拟,也能 AC,而后发现王子恒错误代码也能 AC,因而我先加了几组数据进去卡掉了这些错误作法,后来大半夜的,张海栋又加了几组超强数据。
最后几天,不断的 review,不断尝试错误解法能不能经过,感受咱们这种鶸出题目真的是开头难,中间难,最后更难。最后几天一直担忧会不会咱们的思路是错的,致使出了个错题;会不会数据不够严谨,致使暴力,或者错误的作法水过去... ... 好像从已知状况来看,没有发生这样的问题。
最后再说说现场赛的状况:
此次现场赛邀请到了浙江理工大学,鲁东大学,烟台大学来参赛,不说别的学校了,咱们学校好像略微有一些惨淡,咱们认为的 easy 题,没有一个队伍撸完的。别的题过不了就不说什么了,可能有一些脑洞没想清楚,可是 J 题真是个不能再 easy 的题了,可是校内集训队大二成员居然没有一个队伍提交?!咱们是被惊到了,明明人家理工早就 AC 了,为啥不去看看这题呢,看了就过了。反而大一的吕效华、蔡怡帅、李欣阳队伍有 8 次提交,好像他们思路和坑点都想清楚了,但他们被 memset 卡超时了,我以为挺好的,下次再碰到以这样形式给出的数据范围就知道不能 memset 了。自己预计大二的队伍能够撸 7 到 8 个题,但事实上好像差了好多,固然这个和他们拆开组队也有很大关系的。
我快毕业了,这估计是我第一次也极有多是最后一次花了那么大力气来弄一套还算能看的题,好像里面并无什么很奇葩的算法(由于我和两个学弟都是鶸,高级算法和数据结构都不怎么会),整套题的感受应该是思考 > 知识。
陈老师但愿我出的题多是一些相似于水仙花数的题,但我以为那样的题一来浪费命题人的时间,二来这些题目没有什么价值,应该放在课程教学里的吧,而不是放到竞赛中来,三来对参赛选手来讲没什么有趣的地方,即便过了这题也不会有什么快感吧。像此次的 B,F,M 题,对于一个没搞过 ACM,或者搞过一点点时间的人来讲,都是留有机会 AC 的。我看到在赛场上,不少人在 M 题上搞了好几个小时,每次提交代码以后按着 F5 刷新网页满怀着但愿,看到返回 wa 以后的沮丧,但他们没有放弃,不少队伍在 wa 了七八次,甚至十屡次以后,当网页上跳出 Accepted 的那一瞬间他们确定很激动吧,必定是很是有成就感的,由于这是凭他们本身机智的思惟获得的成功,即便没有 AC 不少的题,我以为这是 ACM 竞赛真正想要传递的精神。
最后,再次感谢王豪,张海栋,王子恒,陈铭洲,史海虹,岑肃廷和我搞了这件事情,把浙江财经大学的题带到了牛客网上,谢谢。