HUSTOJ开启OI判题模式(入坑)

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

你可能感兴趣的:(Linux服务器运维)