題目和題解點這裏: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 競賽真正想要傳遞的精神。
最後,再次感謝王豪,張海棟,王子恆,陳銘洲,史海虹,岑肅廷和我搞了這件事情,把浙江財經大學的題帶到了牛客網上,謝謝。