HUSTOJ開啓OI判題模式
從國慶的OI培訓就一直想給OJ開啓OI模式,後來升級了高性能服務器後,就更加堅定了對非ACM比賽和練習開始採用更加有細粒度的OI計分模式。
Step1: judge.conf裏面開啓OI_MOD 1
vim /home/judge/etc/judge.conf
重判後雖然可以顯示WA的比例,但是對於AC代碼無限Running&Judging!
Step2:更新數據庫結構(感謝浙傳張浩斌老師的指導)
更新一下數據庫結構:solution裏有個pass_rate字段 從float(2,2)改成float(3,2)
mysql -uroot -p
//這裏輸入sql的密碼
use jol;
alter table solutions set pass_rate float(3,2);
結果失敗!提示in_date設置默認值0000-00-00 00:00:00無效,如果設置爲timestamp則判題時間計算錯誤
Step 3:修改sql_mode常量 允許日期設置零值
去掉NO_ZERO_IN_DATE,NO_ZERO_DATE這兩種模式以及ONLY_FULL_GROUP_BY(不去掉報錯無法更新,很雞肋的東西,刪掉算了),語句如下(注意:set前不要加別的語句):
select @@sql_mode ;
//輸出會發現 NO_ZERO_IN_DATE,NO_ZERO_DATE,
SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
刪掉時間的約束,重新執行步驟2,重判競賽,完美支持OI_MOD,
select @@GLOBAL.sql_mode;
set @@GLOBAL.sql_mode = '';