Open Chen-Jr opened 5 years ago
感谢反馈。
我今日已提交了关于 1、2、3、4、6的实现。只要更新下就能有这些功能了。
关于 5-1,暂没想到有其它可以用于显示的地方,我感觉不需要,因为普通用户创建的题目还是要经过管理员操作才能将其加入题库中。
关于 5-2 迟点有时间再实现
关于 7,我目前使用 manjaro 未能重现该问题,迟点有时间再找个你说的系统再看看吧。
感谢开发者的及时回复以及对部分漏洞和功能的修复与增添。 在发布了新版本之后,我个人第一时间进行了更新,进行了部分测试之后,发现CE的问题没有被彻底的解决。 经过测试,在作业模式下,CE确实已经做到了不算罚时,不算提交次数了。 但是,在比赛模式下,CE仍会出现部分小问题。 在组队排位赛以及教育场中,CE已经能够做到不加入到罚时中,但是累计的错误次数却没有清零 而经过测试,在个人排位赛中,CE的问题得到了解决(感谢开发者的及时修正)。
这是我本人在使用了一段时间JNOJ,并对比了部分主流的OJ,想要提及的部分建议(希望我的意见能够更好的建设JNOJ) 1:O2优化的开启。 经过我个人的测试,JNOJ是默认不开启O2优化的。而目前主流的程序设计竞赛都是默认在评测系统上开启O2优化的。而如果不开启O2优化,则会较大的影响评测机的效率。 exp: 对于运行下面这段代码:
#include<cstdio>
using namespace std;
int main(){
int a=1000000000,b=1;
while(a)b<<=1,a--;
printf("%d\n",b);
return 0;
}
如果直接运行该行代码,则返回的结果将是2s左右(目前JNOJ是默认未开启O2优化的)
而如果我们运用代码 #pragma GCC optimize(2)
手动添加O2优化后,我们可以发现最终的判题时间为300ms(下面为对比图,第一份提交是手动开了O2,第二份是没有开启O2优化)
由此可见,O2优化可以较大的提升评测速率。因此我个人建议能够在JNOJ的代码编译中默认开启O2优化
2:线下打星队伍的批量添加。 在目前的JNOJ里,线下比赛中的打星队是需要一个一个进行添加的 虽然说打星队伍可能只是占有一小部分,但是倘若要手动输入还是相对来说比较麻烦,希望日后的添加打星队也能够类似批量创建账号一样,能够实现批量输入账号的功能。
3:管理员的设置的简化 在目前的JNOJ下,管理员貌似是无法直接添加/修改的(如果现在已经有还希望开发者能够稍加提示),我目前添加管理员都是通过MariaDB对数据库内部的用户权限进行修改,以达到添加管理员的效果。
4:权限的细分 目前,管理员拥有了几乎所有的权限(如创建比赛,修改题目等等),但是在部分情况下(如线下比赛中需要监控题目,发出Clarfication),不益将所有权限都给予其他人(防止管理员账号泄露导致一些不良后果),因此我个人希望,如果开发者时间充足,希望能够将管理员的权限细分,以达到限制权力的作用。
5:题目修改的问题: 目前有spj题目的题目均只能够在Polygon System进行修改(在问题栏无法对导入的问题的spj程序进行修改)
6:答案错误的显示问题: 目前在JNOJ上,刷题的过程中出现:答案错误/时间超限后只会显示错误的样例点,但是不会显示代码。希望日后能够对错误的答案中也同时显示错误的代码。
7:题目权限的给予: 因为国内特殊的出题环境,可能出于版权的因素,部分题目以及测试数据可能不适合对外开放,只能够面向校内使用。因此希望能够类似hustoj一样,可以分配部分用户一定的权限,使得部分学校内部的用户能够在前台提交,防止部分某些带有版权的题目以及数据外传。
以上7点是我个人认为JNOJ可以增加的功能,以上也仅仅代表了我的个人观点,希望开发者能够耐心看完,如果觉得有用的希望能够采纳! 最后还是衷心祝愿JNOJ越来越好!! @shi-yang
好的。我更新了下,现在已默认开启O2,打星队伍也可以批量添加了,管理员也能修改了:在后台用户,选择某个用户,修改它的信息时就能看到了。
你第一张图那个数字3,我本意是显示提交次数的,下面的2是提交时间。
第6点不能显示代码?
就是在这一块: Accept的话可以查看原来提交过的代码,但是如果是非AC代码,管理员和一般人都只能看得到测试数据,但是看不到之前提交的代码
查看源码问题,现在已解决。提到的第4、7都属于权限问题,做起来需要一定时间,近期没有什么时间做。针对管理员权限太大这块,嗯,只把管理员交给靠谱的人。。。
好的,还是感谢我的建议能够得到你们的采纳 :)
首先感谢开发者能够及时回应我的关于Special Judge的问题。 现在我想再提及一下另外几个我发现的问题(以及建议)。 1:在正式的ICPC比赛中,CE(编译错误)一般是不算罚时的,但经过测试,在比赛和作业中的CE,都算上了罚时
2:oj上给予的spj的模板代码有问题。 先贴上代码:
经过测试(我的服务器建立的系统是在Centos 7),jonj的args[1]存放的是datain,args[2]存放的是dataout,args[3]存放的才是userout。因此如果采用上面的spj代码,评测机判题时会一直显示AC。(经过测试确实发现如果将args[2]作为userout,任何有dataout的代码都将AC,将args[3]作为userout才会正确判断)。 另外,关于上述spj代码,经过一系列的测试,还发现如下现象: 倘若在spj函数中含有fscanf的多组输入输出(即下面的代码)
则此时主函数的这个判断:
就不会产生作用(即:在这种情况下只要不输出东西都可以AC) 经过测试,在单组输入的时候则不会出现上述问题。
3:点击提交代码后,出现的代码框的左边框时不时会加载不出来
4:(Suggestion)在一般的区域赛中,封榜之后如果某队有提交,在选手的榜单上一般是以Pending图标表示,并显示目前提交的次数,希望也能够把这点在榜单中实现?
updata(12-10)
5-1:普通用户(非管理员)只能够通过 首页的Wiki-出题要求-Polygon System进入出题系统(即普通用户不能通过比较直观的方式进入Polygon System) 5-2(Suggestion):在Polygon System中,希望能够增加一个检索功能(方便管理员/出题人快速找到自己之前出题目)
6(Suggestion):在将题目拉入Contest(比赛)后,如果某题目未手动隐藏,则还是能够在问题列表中看到该问题,如果每次创建训练赛都进行手动操作可能会比较繁琐。希望能够增加如下功能:如果在比赛中创建训练赛,则题目自动隐藏,比赛结束后取消隐藏。
7:在Linux 环境下,倘若复制网站上的黑框代码,则再粘贴之后,会发现代码会被压缩成一行。 我个人在ubuntu 14.04,ubuntu16.04,ubuntu 18.04,Centos 7测试后发现这几个系统都会发生上述情况 而Windows下一切正常,Linux下如果复制本地编译器的代码则也是一切正常
最后衷心祝愿JNOJ越来越好~~