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 = '';