標籤:

在 OI 中,賽後發現評測數據存在明顯的漏洞,是否應該更改數據重新評測?

利益相關:HAOI2017 正式選手,因為相關問題沒有進入省隊。

2017年很多省份省選包括往年 NOI 都出現了類似的情況。這裡只列出比較極端的 HAOI2017 。

河南省選分兩輪舉行。第一輪也出現了類似的情況,因為沒有造成影響所以不再詳細說明。

第二輪省選有兩道題目。

第一道題目,有障礙路徑計數問題。因為題目相關性質,導致在隨機數據下較難產生合法的障礙點,而評測數據全部隨機,10個測試點中8個測試點均不存在任何合法障礙點。所以輸出無障礙計數答案既可獲得80分。2672. [HAOI2017]方案數

第二道題目,字元串LCP相關問題,因為數據全部隨機,導致暴力LCP比SA,Hash最高高出了50分。也就是常數相近,複雜度高的演算法比複雜度低的演算法得分高出50分。2673. [HAOI2017]字元串

HAOI2017省隊線100分

我們針對相關事實對河南省計算機學會做出了申訴,河南計算機學會認為數據只要格式沒問題,就不予修改。

只要數據格式沒問題,即使存在再大的漏洞也不予修改。這樣處理是否存在問題?


出題人和組織單位,你的良心不會痛嗎?

幼兒園沒有學過自己的錯誤要自己改正,自己的過失要自己補救嗎?

rapiz該進省隊,rapiz沒進省隊。

玩到現在,數據有漏洞不改數據,已經是一種歷史悠久的習慣。HAOI2017、HNOI2017都是典型的自己的錯誤甩鍋給選手。你們準備向CCF看齊咯?

我仍然記得UOJ群里的一場討論。當時UOJ上的比賽,有題被暴力A掉了,群里在爭論是否用考前造好的另一套數據替代現行數據。

UOJ是一個榜樣。管理員沒有自己換數據,而是把事情拿到檯面上來討論。這場討論讓我意識到:

公平性不在於出題人不能操控選手成績;出題人在公共監督下重造數據,不影響其公平性。

暴力選手拿高分,這才是真正的不公平。

前一種不公平是嘴上的不公平,後一種不公平是影響別人一生的不公平。

措辭激烈,已經準備好面對各種反對。這個回答一定不會刪除,無論是否影響到我自己的生活。


upd1:

嘖嘖嘖,我好像被點了不少反對。

還有人說我一是太垃圾,二是不會考試。

我來講述一下 HAOI2017 寫題的心路歷程啊。

看見下午這兩題。

T1 沒給無障礙情況的部分分。 暴力 20 。

T2 寫個 Hash + 二分 LCP 優化輕鬆多拿30分。暴力20。

這時候你面臨一個選擇了。時間不足以同時選擇,你是選擇穩拿 T2 的 30 分呢,還是寫寫 T1 期望得分 0 ~ 10 的部分分呢?

我選擇前者。期望得分 20 + 50 = 70。

不過,實際上,T1 的無障礙拼上暴力就可以 AC。得分100

至於 T2, 字元串全隨機(並沒有在題面中保證)暴力 LCP 比 Hash + 二分 多 50 分。 得分80。

也就是你去搞一下 T1 夢想分,T2 寫完暴力雙手離開鍵盤就可以踩深思熟慮的選手一百多分。

這樣你噴我不會考試,我就不太開心了。 @王東嶽

以下為原答案:

- - -

我不認為寫掛了的正解比暴力高到哪裡去。

當然,我也一向是個暴力選手。

不過能AK的神犇還是很少的,大家都是有理有據的暴力啊。即使是正解也是從合適的暴力優化過來的。

不過當你有理有據的優秀的O(lgN)暴力,被模擬的O(N)暴力踩了50分。

當你老老實實寫完暴力拿了20,別人根本不是暴力的什麼鬼,根本不是解決這個題的程序拿了100分。

你就明白這不是正解和暴力的問題。

這就是逆向淘汰。

哦對了,逆向淘汰原用法里,那些比較劣的人也是有些地方勝過比較優的人的。

不過這裡沒有。就是哪點都不如你的人踩了你,謀殺了你的夢想。

不好意思,我偏激了。從下面這個角度來說,我還是有不如他們的地方。

畢竟,我怎麼會料到,一場決定選手命運的考試,數據也可以出的如此隨意不負責。我錯誤的假設HAOI2017是一場合格的演算法競賽。

而他們,是不合格的選手,被不合格的競賽選拔出來。這很相稱啊。

HAOI2017:所有題目隱藏條件,數據完全隨機。隊長留下。其他撞到的進隊,沒撞到的選手全部滾蛋。

我一直覺得,努力和天賦是可以成就夢想的。如果不行,那就是你還不夠聰明,不夠努力。

我是,太盲信「技不如人,甘拜下風」了。

依然的,不推薦任何人在河南省學習 OI。這裡的某些人很傲慢。

- - -

反正沒人鳥我。我就把申訴信全po出來了。

中國計算機協會:

感謝您在百忙之中閱讀此郵件。

2017年河南省省隊選拔賽分為兩試,分別於 2017 年 4 月 23 日上午和下午舉行。

二試(即下午)的第一題 方案數,數據不能考察選手程序正確性,嚴重影響省隊選拔。這件事在河南省信息學競賽選手中引起很大反響。

簡要題意如下(詳細題目與數據請參見附件):

題目名稱:方案數(輸入輸出文件名 a.in/a.out)

題目描述:給出一種移動規則,和一些障礙點,計算從(0, 0, 0) 不通過障礙點走到目標點 (n, m, r) 的方案數。

出題人的主要過失如下:

題目中要求輸出不經過障礙點的方案數。

除了第1,2個測試點,其餘測試點輸出不管經過不經過障礙點都行的方案即可通過。

並且這些演算法也不基於貪心、隨機化等演算法設計技術,而是刪去了題目中一半的限制,獲得滿分。

其原因在於出題人完全隨機生成輸入,導致最終生成的數據不能考察選手程序的正確性。這樣的數據,將題目大大弱化,嚴重缺失公正性

更為重要的是,這次河南省選的省隊選手省選最低分僅僅100分
一道題上就出現80分的嚴重偏差,嚴重影響省隊選拔。

今年湖南、湖北、安徽省選,同樣出現了數據過弱的情況,讓貪心演算法通過了一些點,但是都及時更改數據並重新測試,給了選手一個交代。

雖然性質相同,但河南省出現的情況更為嚴重,一道題有8個點數據極弱,使題目喪失了一半的限制。這道計數題上,後8個點讓這道題弱化為一道新題目,即無障礙點計數。無障礙點計數演算法能滿分通過有障礙點計數的題目,這無異於天方夜譚。這些通過的程序甚至都不基於貪心、隨機化等獲得局部最優解的演算法設計技術。這比剛剛提到的三省省選發生的事件更加嚴重。

騙分這種情況在OI比賽中的確存在。但我們認為,騙分演算法的得分取決於該局部最優解演算法在解決問題中的實際效果,比如貪心、隨機化、模擬退火。但在這道不允許經過障礙點的計數題上,認為沒有障礙點的演算法就可以通過,直接無視了一半的題目限制,完全是在做另外一道題目。並不基於貪心、隨機化、模擬退火等演算法設計技術,這和局部最優解演算法的「騙分」是兩回事

綜上,我們認為這道題後8個點的數據存在不能公正評測選手程序的問題。

大家都是抱著對信息學競賽的熱愛走到一起,在如此重要的賽事中,出現數據不能公正評測選手程序的情況,破壞了省隊選拔的公正性,讓很多選手扼腕嘆息。

很多河南選手不禁要問:OI比賽,是比試演算法的理論複雜度和在實際問題中的運行效果,還是比試削減題意、賭博數據特殊性?

如果選手把題目限制刪去一半再做,僥倖利用數據的漏洞、出題人的疏忽就能輕鬆進入省隊,這樣的省選,無疑破壞了選手們對OI比賽的認可和熱愛,既選拔不出優秀的選手,也難以服眾

2017年河南省選正式選手共74人,其中12人在此聯名申訴。

今年湖南、湖北、安徽省選在出現測試數據過弱、放行貪心演算法的情況時,都及時更改5個點的數據重測。而河南省選中出現的問題,是徹底的8個點數據不能反映演算法的正確性。

如果說原來的數據就有不能忽視的缺陷,那發現缺陷不但不彌補,反而放任自流,這本身就是一種巨大的不公。更何況在今年河南省選的得分情況下,這一道題就決定了選手命運。如果本來即為不公,何來加強測試數據破壞公平?再次,加強數據,本來就是促進公平的行為,足夠強的測試數據才能顯示出選手演算法的優劣。綜上,加強數據怎麼會破壞公平?

在這樣的情況下,雖然我們向河南省計算機學會申訴,但是省學會表示維持原有成績。我們對申訴結果表示不服。

在此,我們懇求中國計算機協會能夠讓此題的數據公正反映選手程序的情況,合理解決此事!

發信人:鄭州市第一中學 喬羽佳

聯名申訴人(12人):

*

想了想還是在知乎上刪了


謝 @王聿中 邀...

對於題主的問題...我覺得要麼重賽, 要麼不改..哪有賽後改數據的...不然別的人也可以說:我是因為出題人對著我程序卡才沒進隊的。

然後說點題外話吧。

仔細看了一下這題的本質還是在討論怎麼把騙分選手區分出來。

本來想在論文答辯的時候吹一波的,後來想了想不太成熟還是刪了,在這裡提出來拋磚引玉吧。

我的論文題目事實上是一道區分度不夠高的題目, 因為題目的最後那個性質, 即若干個坐標範圍在 R 以內的整點, 它們的凸包上的點的個數是 R^{frac{2}{3}} 級別, 這個性質不管你知不知道, 都會去寫個在凸包上暴力的演算法, 然後你就會發現自己A了。

換句話說, 我沒法區分出知道這個性質, 和不知道這個性質的選手。 但是實際上前者顯然在這道題上應該拿更高的分。

我試想過一個評分機制, 大概是選手每道題預估自己得分是 x , 實際得分是 y , 如果 x > y , 那麼選手得分就是 y , 不然就是 max(0,y-f(x-y)), 其中f是一個懲罰函數, 估分比實際得分高的越多, 懲罰越大。

這個評分機制在數據不強的情況下 ,也可以把大多數心裡沒有底的選手區分下去, 不過對正解寫掛的選手是更不友好的(捂臉熊.jpg), 而且感覺選手在整場比賽還要做第四道題, 十分辛苦, 所以這個機制是一個肯定不夠成熟的機制, 但是我覺得, 既然很多時候沒法在數據上把選手區分開, 不如讓選手自己把自己區分開。

以上


到底是數據水,還是數據錯了?

如果真的是數據錯了,與題目限制相悖,這就不是可以討論的問題了。怎麼可以不改數據?改數據怎麼確保公平?當然是本題作廢!

但是如果數據水,那就另說了。

畢竟,你這個數據只是水,隨機,沒有與任何東西衝突,完全符合程序公義,再暴力改數據,難免會有「卡某暴力選手」這樣的質疑。

但是,出題人你自己都不寫個暴力試試看,還敢出全隨機數據,你的良心不會碎嗎?!還有,驗題人究竟有沒有驗題?這麼大問題發現不了?

無論是那個情況,出題驗題組織單位,當中總有一個或幾個,沒有認真做好自己的本職工作,讓暴力選手進隊,你們自己應該知道引導了什麼樣的風氣,這個鍋請你們背好

OI圈的風氣,需要所有人來共同維護,像數據水這種問題一旦發生,非常難以取得絕對公平的處理方式

最後勸所有人,不要學C某F對待選手那種霸道而不負責的習慣。


只能說是出題人太不負責任,但按理說出題人知道了分數後就不能改數據了,所以要搶救就只能重賽了。


BJWC17就這麼幹了,隨機化選手(我)硬是和第一次評測少了10分(


我想起了一道久遠的題目:NOIP2012普及組 文化之旅一題,CCF的官方數據中前九個點沒有任何限制,導致直接跑spfa即可通過,最後一個點全是限制,所以也能很容易通過。但任何一個稍微有點實力的選手都能知道用spfa+衝突判斷是錯誤的,因為具有後效性。

ccf當年也沒有任何表示啊,數據確實是合法的啊,當且僅當你打了個無腦spfa或者看漏一半題目即可ac,可能因為是賣萌的普及組吧,如果是提高組或者noi可能就又一片聲討了hhh


應該修改,只要出題人/驗題人沒看到具體得分,只看到整體情況的都沒問題,不算針對


雖然我的實力不在省隊範圍之內

但是 我不管,我就是要把鍋甩給HAOI

我一下今年HAOI發生了啥吧

今年HAOI有一題是你從(0,0,0)出發走到(n,m,k),每次可以選一個二進位變成1,中間障礙,求方案數,但是由於數據全隨機,顯然,如果障礙中有一個二進位位目標狀態沒有,那麼這個障礙就不是目標狀態的子狀態,就等於沒有,所以數據全部隨機的結果就是除了前兩個點的20分暴力,後面80分中的狀態全部沒有卵用,直接按照沒有障礙的情況寫O(n^3)dp即可,有些選手就是憑夢想分+20分暴力直接100


我是很支持重測的。以GDOI為例,GDOI系列的賽事很少出現辣雞數據的情況,今年出現的DAY1T2數據出錯的事故後來也完美的解決了,就是GDKOI2017的時候DAY1T4理論給了一個辣雞水法30分(個人認為其實應該不過分(雖說我就是這麼寫的)),但因為後來出題人臨時換掉了後面幾個數據,導致這個水法最終可以水到70分(評講的時候出題人還握著我的手說哈哈我卡了你),不過後來還是沒有重測。不管怎麼說,GDOI還是很人性化的,出題人會把水法都想一下(吧),應該不會出現特別極端的情況。所以說很多工作是要在之前就要全部做完的,出現特殊情況只能是出(審)題人背鍋


一場考試的價值在於區分度,而區分度是以題目本身的準確性和數據的設計作為前提的。出水數據,尤其是錯誤數據,絕不是可以姑息的事情,而是嚴重影響了考試的價值。放任這種情況絕不是可以接受的,否則考試本身便無意義,因為區分度便變得很弱,甚至發生了逆向淘汰,對本省發展和選手公平都是不可忍受的。希望出題人能意識到問題,重造數據。


我覺得,這種無障礙點的大數據,應該是要給10分的吧...

嘛,題目也不是特別難,如果做不出來的話,先反思一下吧...

沒辦法,oi就是這麼回事,騙分從來都是策略而不是作弊,從某種意義上講,會這麼做題的人,是會考考試的,可能會在noi賽場取得不一樣的成績也說不定...

系統性的騙分是必學科目,可愛的孩子呀...


理論上來說數據一旦開始考試就不應該改了吧。。。

不過如果出題人不好好造數據或者太sb不會造數據,導致一群暴力過了題,然後你退役了,估計也沒什麼辦法吧,只能天天婊他們咯

反正SCOI有個題,暴力優化一下就100分,然後暴力分只給了20分,就相當於你不優化暴力就少了80分

SCOI題是我們省偉大的 電子科技大學 出的,他們實在太棒棒了我都不知道該說什麼了

利益相關:SCOI2017 正式選手,因為相關問題沒有進入省隊。


我認為應該。像ZJOI2017Round2,出題人發現T3很多人30分的暴力拿到80分,就重造了數據。


數據出水了,只能說出題人大傻逼。如果說看到某個偏分選手騙到分了,為了卡掉選手,那是黑幕。

以及有些人,輸了就是輸了,你有理說理,刷無賴是什麼意思?


利益不相關:退役暴力集訓隊選手,信奉「暴力可進隊」,泉嶺精神不朽!

數據錯誤的話可以換數據吧。

但數據沒錯,你以暴力拿太多分為理由換數據就是黑幕了。

如果允許這樣換數據,那麼所有非正解的解法得分都會被操控,這個UOJ群里也是討論過的。

有些人想必都是正解寫掛選手看暴力不爽。但別的選手也寫暴力啊,只不過都是暴力和正解混著寫的,這樣正解掛了還有暴力分。你們啊,naive


除非是在像CF這種明確有hack機制的比賽當中,拒絕以一切原因在評測結束後添加或者修改數據。

但是數據水(甚至可以說是nc),出題人、驗題人應該背鍋。

在我出過的幾套題(非CCF官方比賽)里,都是反覆的想著各種貪心、優化版暴力,然後再特意的構造出數據將其卡掉,再通過捆綁測試等一些手段給這些演算法恰當的額外分。

順便再說一個事情吧:

在某場比賽中,有一題n=300000,我不會做,寫了一個O(n^2)的暴力,而其他的選手有的也寫的是O(n^2)的暴力,有的是用bitset優化過後的暴力O(n^2/32),最後這題只有我一個人AC。賽後看了題解後才知道,原來我的做法就是標算,因為題目的一些特殊性質,我的複雜度其實是O(nlogn)的。但是,在評測結束前,我一直認定我寫的是暴力,複雜度是O(n^2),也不對我能通過此題抱任何希望。那麼,你能說題目出的不好,讓人暴力過了之類的話么?只能說,有時候,運氣很重要。

最後,心痛一下因此沒進隊的。


這樣的處理說沒問題確實也沒啥問題…數據又沒有錯…組織方不改你也沒什麼辦法呀。而且數據出水這點其實比較主觀的吧?實際上是沒有評判標準的?


推薦閱讀:

「羅馬法官問題」的最佳策略是什麼?
oi里有什麼優秀的調試技巧?
為什麼完全聽不懂冬令營講課的蒟蒻還要去CCF NOI 冬令營?
在國際奧賽中取得好成績的那些大牛們都很愛賣萌嗎?怎樣利用學術賣出一個高格調的萌?
OIer如何找到一個妹子?

TAG:OI |