互動造題指南

2022-10-10 07:33:09 字數 810 閱讀 2943

寫在前面

​ 這篇文章寫在聯合省選 2022 兩天後。筆者此前造互動題時發現全網都搜不到好上手的教程。筆者意識到自己進集訓隊的可能性為 \(0\),打算寫一篇部落格,在退役之前留下真正有用的東西。

​ noi 風格的互動題就是通過函式呼叫實現互動。我們假設題目的名字叫做 "test",那麼通常乙個互動系統中需要這樣的幾個檔案:

under lemon

under loj(舊版)

​ 舊版 loj 處理 noi 風格互動題,筆者只會一種雞賊的辦法。思路是將這道題設定為傳統題 - special judge,並通過 special judge 充當評分的角色。而grader.cpp中的內容將會被封裝到test.h中。(根據合理的推測,將題目設定為互動題,並同樣將grader.cpp中的內容封裝到test.h中,且使用下一節中的方法編寫data.yml,也可能成功實現。但筆者此時缺少驗證的條件。)下面詳細介紹所需要的每乙個檔案。

under loj(新版)

​ 鑑於筆者沒有這樣的經驗,這裡提供鏈結 評測設定 #6 - libreoj,相信讀者一定可以參考該題目學會。

​ cf 風格的互動題就是通過標準輸入輸出流實現互動。很遺憾 lemon lime 並不支援這樣的互動方式,因此以下僅針對舊版 loj 進行說明。(polygon?沒聽說過) 在這套系統中需要test.cpp(選手提交),grader.cppdata.yml

手動造資料指南

自己出了一道題,如何給它造資料呢?首先,你要有標程,也就是 texttt 這樣你才能給自己的輸入資料生成乙個正確的輸出資料。然後,你要有生成資料的程式,也就是 texttt 詳見part 2。大多數 texttt 的原理都是隨機生成的,而 texttt 可以按照模板來打,例如隨機生成乙個數列 執行前...

codeforce刷題 互動題

打codeforces第二週 又遇到了很多有意思的題型,可自己還是太菜了 寫份部落格記錄一下憨憨的自己 做的第一道互動題,記錄一下 this is an interactive problem.這是一道互動題 你通過列印問題詢問他,他給你結果,讓你找到最終的陣列 需要清除快取區,才能保證正確,否則就...

互動題訓練1

一道經典的題目便是猜數字。codeforces 1011d rocket 不過,這裡面的人有可能撒謊,即大於有可能說成小於,小於有可能說成大於。好在,它們說真假話為n個乙個週期。即第i ii次說假話當且僅當imo dn i mod n imod n時說假話。真話同理。猜的數在 1,1e9 內。n 3...