对于个人出题的一些整理总结和反思

oxx1108 edited 4 年,4 月前

声明

以后除ECNU举办的各类赛事外,不再参与任何商业用途或有利益瓜葛的任何赛事的命题。包括但不仅限于多校,网络赛以及区域赛。


由于参与上海现场赛的部分出题以及验题的工作,出了一些锅,暴露了自身经验不足等一系列问题。在阅读了大佬们对于出题的一些看法和理解以及对于上海试题的批评后,在此整理总结反思。

首先先感谢Ultmaster,是我出题“生涯”的引路人。几乎所有我的题都包含着他的协助(讨论idea,出数据,改题面,写checker,验题以及提出建设性的意见)。其次感谢 dream_cloud,Xiejiadong,kblack,zerol,Kilo_5723,Weaver_zhu等一系列协助我讨论idea以及验题的同学和EOJ的管理者,维护者(貌似重复了)以及忠实粉丝们(排名不分先后)。大家都是为爱发电,希望月赛越办越好。最后感谢参与过EOJ月赛的每一位同学,你们是我们出题的动力。没有你们的鼓励与支持,EOJ月赛也没法办得如此长久。

先把这几天的一些思考与反思写在前面,都是一些个人的想法与理解,并不一定正确。理性讨论,不喜勿喷。

出题的初衷

我出题的初衷只有一个,就是与大家一起分享讨论我的idea。

什么是合格的出题人?

  1. 能力水准高于绝大部分参赛者,至少应该要有top 10%。能力不够,时间来凑,但是连金牌水平都没有的来出区域赛的题的话,花再多时间可能也出不出一道好题。(没有任何针对的意思。如果在某一方面很强,有top 10%的实力,即使是铜牌选手也可以出一道好题。)

  2. 有大量积累的做题(出题)经验。这个好像是废话,没经验在哪儿都只能当菜鸡。

  3. 能够长时间思考并且从深层次看待问题。比如一些数论题如果从抽代群论的角度来看,就能够理解其真正内在的一些道理,其他题也是如此。在真正的深入理解之后,就能够不被一些条条框框的东西所束缚,从而有一些新的idea出现。

  4. 用心出题,为爱发电。这个好像也是废话,做啥事用心才能做好,为钱发电可能也做不好啥事。非常认同吉老师以及Dai老师的观点,出题应该是idea导向的,而不是ddl导向的。

显然像我这种野鸡出题人是不合格的,也只能做到第四点……(面壁去了)

什么是一个好题?(针对个人赛,区域赛类型的题可能不太一样)

  1. 有新意(有自己的idea),不要是原题(well-known problem),套路题。比如上海我出的 H 题就是一个没啥新意的题,而 I 题则是算是有一点新意的题。

  2. 题意简介了当,容易理解。像是某些题面中有许多歧义,难以理解并套上一些花里胡哨或者强套上背景的题,不能算是个好题。

  3. 解法自然而精妙,最好能够有多种解法让大家百花齐放。在看完题解之后,参赛者能够 make sense 并且有一种恍然大悟的感觉。而不是通过要求参赛者与出题人心灵相通才可以做的题。

  4. 有一定难度,但是不能为了防ak而防ak。比如我曾经出过一些自己推导了长时间(>5h)的数论题,这些题其实毫无意义。包括一些论文题,抑或是一些不让选手做出来的胖题。当然,太简单也不行。

  5. 不恶心做题人的题。好题是和大家分享自己好的idea,不是来恶心做题人的。一些强加的无意义的分类讨论,或者强行增加难度的输入输出,抑或是埋毫无意义的坑都不应该出现在好题里。

  6. 数据范围及时限没有歧义,或者说让选手在写代码前就能够明确知道某个算法能否通过。上海的GJM在这一点上都没做好。

  7. 数据的准确性。数据应该尽可能cover所有情况,让所有假算法以及有瑕疵的代码不能通过。

对于我来说一般要有5~10个idea才能出出一个好题,绝大部分的idea不是死于不会就是死于一眼题。所以,积累真的非常重要。

什么是一套好题?

  1. 没有垃圾题。这个是废话……

  2. 难度类型分布合理,区分度良好。这个好像也没啥好说的……

  3. 不用每个题都是好题,但是至少要有一些好题。个人认为,如果一堆好题整合起来的题一定不是一套好题。参赛者会面对许多充斥着idea的题无从下手。这样只会是一套很奇怪的题,虽然每个题拿出来都很好,但是凑一起并不一定合适。当然,如果所有题都没啥新意的话,这可能不是竞赛了,这变成考试了……

  4. 要有一定码量,但是不能胖题成堆。毕竟这是程序设计竞赛,不是码农大赛,不是数学竞赛,更不是脑经急转弯大赛。码量过多或者过少都不适宜。

没有独立出过一整套多校或者是区域赛类型的题,可能思考的不是特别深入。

个人反思

这次出题表现出个人经验不足,能力不够。由于时间仓促,准备的也不够充分。虽然早已退役,但如果想要在之后能够出高质量的题,必须再丰富自己的知识面以及加强做题思考,提升自身水平。退役并不意味着结束学习,对于自己薄弱的知识点以及各类最新算法仍需加强学习,希望大家监督。

想到这些,之后想到别的再更,也欢迎大家讨论补充。

最后是对于所有参与过命题的比赛以及自己出的题的整理以及评价。(SABCDF分级)

1. EOJ 2018.2月赛 (整套题 评级B)链接:https://acm.ecnu.edu.cn/contest/51/

受Ultmaster邀请,完整出一套月赛题,加上自己有一些idea,所以就答应了。这也是第一次出题。在Ultmaster协助下没有出什么锅,属于中规中矩的一套题。整套题类型难度上都比较适中。

A题(类型 DP 评级B)中规中矩,有一定的idea,没那么套路。

B题(类型 博弈,状压 评级 C)套路题,没啥意思。研究组合博弈时在知乎上看到过非常类似的题。

C题(类型 贪心 评级 S)非常满意的题,idea很好而且不套路的题。智商题。

D 题(类型 图论 评级 C)中规中矩的图论题,属于一眼题。

E 题(类型 数学 前缀和 评级 F)本身是非常好的题,但是是抄来的原题,所以直接F了。

F 题(签到垃圾题)签到不评论。

2. EOJ 2018.4 月赛(整套题 评级 D)链接:https://acm.ecnu.edu.cn/contest/69/

唯一一次出大锅的题,发了公告把一个真题改成了假题。原来想搞hack的场,为了测试pretest功能,强行卡了一些没意思的东西。(然后eoj hack功能就凉凉了)鉴于有个别题目质量不错,所以没有评成F。

A题(类型 数学 签到 评级 A)个人觉得不错的签到题,放数竞里会是一个很好的题。

B题(类型 垃圾题 评级 F)面试时候碰到的题,没啥意思,强行为了测pretest。

C 题(类型 交互 分治 评级 A)比较满意的交互题,虽然一眼题,但是写起来还是有一定的技巧。Std写得很不错。

D 题(类型 数据结构 DP 评级 D)如果题面没锅,就是个很套路的数据结构优化DP的题。勉强及格。

E 题(类型 DP 贪心 评级 B)个人还是比较满意的题,把贪心和dp结合在了一起,但是可能有些套路。

F 题(类型 图论 构造 评级 C)读错题而出的题,题目本身是个不错题,但是事后发现是cf原题。Ps:后来计蒜之道也出了这个题。

3. EOJ 2018.7 月赛(ABC 评级 C)链接:https://acm.ecnu.edu.cn/contest/92/

这套题每个题目质量都挺高,但是拼在一起效果不太理想。低估了签到题的难度,后来强行增加了样例,但是很多人还是爆零了。不过参与人数也不是很多。

A 题(类型 数学 防ak 评级 C)题目本身质量不错,作为训练练习题非常好,但是放个人比赛里没啥意思。自己都搞了10+ 小时,2个小时比赛强行卡防ak毫无意义。

B题(类型 构造 评级 A)没增加样例前是个非常满意的构造题。难度适中,完全不套路的构造题。

C题(类型 贪心 评级 B)可以视为经典的排序题,多校里出现过两个类似的题。(但是可能之前就有过这个套路,但是肯定不well-known)

4. EOJ 2018.9 月赛(CEF 评级 B)链接:https://acm.ecnu.edu.cn/contest/106/

这套题部分题目质量不是很好,但是整体性以及难度分布比较好,所以评级较高。另外这套题作为选拔赛,因此简单题略多。

C题(类型 构造 评级 D)套路的构造,没啥意思。强行加的题。

E题(类型 贪心 评级 B)题目非常好,做法非常多,很适合作为练习(例题)用。但是有些套路,因此只有B。

F 题(类型 SG函数 计算几何 评级 D)没啥意思的题,卡了一些东西。

5. EOJ 2018.11 月赛(CDE 评级 C)链接:https://acm.ecnu.edu.cn/contest/121/

中规中矩的一套题,只提供了idea,没develop,因此没啥印象了。

C题(类型 数学 构造 评级 B)还算不错的题。(发现我好像特别喜欢出格点题

D题(类型 交互 分类讨论 评级 C)普普通通的交互题。

E题(类型 DP 图论 评级 A)idea不错的题,背景也套的挺好,加上ultmaster的改进,比较满意的一个题。

6. EOJ 2018.12 月赛(D)链接:https://acm.ecnu.edu.cn/contest/125/

只出了一个题,不评价。

D题(类型 乱搞 贪心 评级 B)还凑合的题,没啥印象了。

7. EOJ 2019.3 月赛(E)链接:https://acm.ecnu.edu.cn/contest/151/

只出了一个题,不评价。

E题(类型 树形dp 防ak 评级 B)自己论文里的子问题,放区域赛可能还不错,放个人赛不太理想。

8. 2019年ECNU校赛(BCGIJ 评级 A)链接:https://acm.ecnu.edu.cn/contest/169/

第一次出正式比赛题。非常满意的一套题,题目质量非常好,难度分布理想,可作为校赛的标杆。也准备了挺长时间,把之前屯的一些idea都用了。美中不足的是没有数据结构题。给A留一些进步空间。

B 题(类型 DP 概率 评级 B)二三等奖的区分题,中规中矩,有一点新意。

C 题(类型 构造 数学 评级 A)较难的题,作为构造题略微有些复杂,但是个人对这个题还是比较满意。

G题(类型 交互 构造 暴力 评级 S)非常优秀的题,智商够高可以直接构造,智商不够可以用暴力来解(不太好写)。

I 题(类型 图论 构造 评级 A)比较满意的题,质量很高的图论题。一二等奖的区分题。

J题(类型 构造 评级 S)非常满意的“狐假虎威”题,原来打算作为签到题的,可惜没啥人做。

9. 2019 Multi-University Training Contest 7(hdu多校第七场)(EFGK 评级 A)链接:http://acm.hdu.edu.cn/userloginex.php?cid=854 (HDU 6646~6656)

第一次参与出非个人赛的题,也准备了挺长时间,整套题目质量也非常好,可作为区域赛的题。

E题(类型 数论 防ak 评级 B)防ak题,自己搞了至少2整天,原比赛没人ac,达到防ak效果但是没啥意思。(验题人发现是论文题)

F题(类型 贪心 评级 A)很满意的签到题(铜牌题)。除了题面出了锅,题目本身很有意思。

G题(类型 DP 评级 A)比较优秀的DP题,需要二分优化或者斜率优化。也有一定的trick点,但是很自然并不是强加上去的。想清楚还是很容易做的。

K题(类型 概率 DP 评级 B)中规中矩的签到题。

10. The Preliminary Contest for ICPC Asia Shanghai 2019(ICPC上海赛区网络赛)(IJK)链接:https://www.jisuanke.com/contest/3003

临时出的题,把之前屯的几个不太好的idea用了。没接触别的题,因此不作评价。

I题(类型 数学 评级 A)三个题里最满意的题了,方法巧妙不套路。但是由于是原题加强数据范围,因此不是S级。

J 题(类型 DP 评级 C)多校被毙掉的DP题,套路没啥意思。

K题(类型 数论 评级 C )之前被毙掉的题,两个问题凑起来的题,难度可以但是没啥意思。

11. 2019 ICPC 上海赛区现场赛(DHI 评级 C)暂时无链接

第一次出如此重要的比赛,或者说第一次以非参赛选手参与ICPC比赛,虽然准备了不少时间,但是还是不够充分。整套题有一些锅,有一些没意思的题,但也有一些不错的题。难度区分度还可以。个人出的还算凑合,因此给C。

D题(类型 构造 评级 B)除去原题,还是个比较优秀的构造题,构造方法众多。虽然有一些套路的构造方式,但是作为前期题(银牌题)来说还是一个不错的题。

H题(类型 贪心 树 评级 C)很套路的题,甚至可以说是为了出题而出的题。不过应该没原题,而且作为区域赛的前期题中规中矩,因此也不算太差。

I题(类型 计算几何 评级 A)有一定新意想法的题(q老师说奇怪的题),也算是风险很高的题了,而且是第一次出计算几何,没有任何经验。但是幸好准备充分,没有出锅。个人还是比较满意的题。

总结:一共出了35个题(去掉抄的题以及垃圾题),其中数学(含数论,概率)11题,构造9题,贪心7题,DP 7题,图论4题,交互3题,博弈2题,数据结构计算几何各1题(有一些题算多种类型)。以后尽量避免再出垃圾题,套路题。可能会更多尝试计算几何题。

Past Versions

Comments