LemonLime 食用指北
\(~~~~\) 大概是今天有點腦子發抽並且問的人有點多並且補題壓力還不算太大所以想起來寫份指北。
\(~~~~\) 其實本質是高頻問題合集。
\(~~~~\) LemonLime下載鏈接
\(~~~~\) 如果是Lemon上的問題我就只能建議你升級到LemonLime
\(~~~~\) 實際上LemonLime的幫助內有一份PDF的指南,只是部分內容寫得比較模糊而已。如果有本文章沒提到的問題請先查閱那份指南。
一、我怎么添加比賽
\(~~~~\) 如果是新建比賽,則在新建處給比賽選好存放位置及名字,並將每道題的數據文件夾放在 data
文件夾下,選手程序所在的文件夾放在 source
文件夾下。
\(~~~~\) 如果是已有的比賽,則在 打開比賽
內找到那場比賽的 .cdf
文件。
二、我怎么添加題目/為什么打開比賽沒有題目
\(~~~~\) 在那場比賽的界面內選擇上方工具欄 控制
→ 自動添加試題 並為每道題設置時間和空間限制。
三、我怎么開 O2/無限棧/C++11
\(~~~~\) 在上方工具欄選擇 工具
→ 設置
→ 編譯器
→ 高級選項
→ 編譯器參數
處填入你需要的編譯命令,常見的有:
\(~~~~\) -O2
開啟O2優化 -Wl,--stack=1000000000
開啟無限棧 -std=c++11
開啟C++11
四、我怎么修改題目時間限制/空間限制/綁點
\(~~~~\) 在 試題
部分右鍵想要修改的題,選擇 增強測試點調整器
\(~~~~\) 如果你想修改測試點的時空限制,則選中欲修改的測試點,點擊右側 修改選中
后修改限制即可。
\(~~~~\) 如果你想綁點,則選中將設置為同一個子任務的測試點,點擊右側 合並
,此時只有通過該子任務內所有測試點才能得到該子任務的得分。
五、我怎么配置SPJ
\(~~~~\) 首先,LemonLime的SPJ是基於其特有的 testlib.h
庫(下載鏈接)。
\(~~~~\) 如果想編寫SPJ,你可以認為你只需要按照普通的 testlib 下的 SPJ 編寫,之后將初始化語句改為 registerLemonChecker()
並使用配套的 testlib 即可。
\(~~~~\) 之后在Windows系統下,編譯SPJ(需要在C++11下)生成 exe
文件並放在對應題目Data文件夾內,之后在對應試題處選擇 比較模式
→ 自定義校驗器模式
,然后填入 文件夾名稱\*.exe
,其中 *
指代SPJ可執行文件的名稱。
\(~~~~\) 在Linux系統下則在填入SPJ時填入 文件夾名稱\*
即可,*
含義同上。
\(~~~~\) 以下是一個在Windows系統下的例子
六、已知bug
\(~~~~\) 如果你在增強測試點調整器
修改過測試點綁點情況過后或者加入了SPJ后雙擊在之前測試的記錄會導致LemonLime閃退.