From 224dc3b271d839a8a60d5a0631b1241dbbf042ac Mon Sep 17 00:00:00 2001 From: Baoshuo Date: Mon, 10 Oct 2022 13:57:27 +0800 Subject: [PATCH] refactor(web/faq): bootstrap5 --- web/app/controllers/faq.php | 289 ++++++++++++------------------------ 1 file changed, 93 insertions(+), 196 deletions(-) diff --git a/web/app/controllers/faq.php b/web/app/controllers/faq.php index 4fccbb5..45725e5 100644 --- a/web/app/controllers/faq.php +++ b/web/app/controllers/faq.php @@ -2,207 +2,104 @@ requireLib('shjs'); requireLib('mathjax'); - echoUOJPageHeader(UOJLocale::get('help')); - ?> -
-
- -
-
-
- -
-
-

来了?坐,欢迎来到

-

小熊像超人一样飞

-

众所周知,信息学的题目一般形式为:给出XXXXX,要你提交一份源代码,输出XXXXX,然后时限若干秒,内存若干兆,数据若干组,每组数据与答案进行比较,不对就不给分。

-

看起来挺合理的,但是总是有意外。比如要求输出一个浮点数,与答案接近就满分。于是只好引入Special Judge来判断选手输出的正确性。

-

但是还是有意外,比如提交两个程序,一个压缩另一个解压;比如提交答案题只用提交文件;比如给出音乐要求识别乐器,达到90%的正确率就算满分……

-

这个时候UOJ出现了,于是就使用了这套系统。Universal的中文意思是通用,之所以称之为UOJ,因为我们所有题目从编译、运行到评分,都可以由出题人自定义。

-

如果你正在为没有地方测奇奇怪怪的题目而苦恼,那么你来对地方了。

-

当然了,对于传统题的评测也做了特别支持。平时做题时我很难容忍的地方就是数据出水了导致暴力得了好多分甚至过了,而出题人却委屈地说,总共才一百分,卡了这个暴力就不能卡另一个暴力,所以暴力过了就过了吧。

-

所以我们引入了Extra Tests和Hack机制。每道传统题的数据都分为Tests和Extra Tests,Tests满分100分,如果你通过了所有的Tests,那么就会为你测Extra Tests。如果过了Tests但没过Extra Tests那么倒扣3分变为97分。Extra Tests的来源,一个是这道题没什么人可能会错的边界情况可以放在里面,另一个就是各位平时做题的时候,如果发现错误算法AC了,可以使用hack将其卡掉,会自动加入Extra Tests并重测。我们无法阻止暴力高分的脚步,但是不让他得满分还是有心里安慰作用的~

-

还有比赛功能可以承办比赛,赛制暂时只支持OI赛制。(不过你可以利用现有方案变相实现ACM赛制!)未来将支持更多种多样的赛制甚至自定义赛制。

-

目前刚刚起步,还有很多地方有待完善。想出题、想出比赛、发现BUG、发现槽点都可以联系我们,联系方式见下。

-

祝各位在玩得愉快!(求不虐萌萌哒服务器~求不虐萌萌哒测评机~!)

-

小熊抱抱

-
-
-
-
- -
-
-

不提供头像存储服务。每到一个网站都要上传一个头像挺烦的对不对?我们支持Gravatar,请使用Gravatar吧!Gravatar是一个全球的头像存储服务,你的头像将会与你的电子邮箱绑定。在各大网站比如各种Wordpress还有各种OJ比如Vijos、Contest Hunter上,只要你电子邮箱填对了,那么你的头像也就立即能显示了!

-

快使用Gravatar吧! Gravatar地址:https://cn.gravatar.com/。进去后注册个帐号然后与邮箱绑定并上传头像,就ok啦!

-
-
-
-
- -
-
-

默认的测评环境是 Ubuntu Linux 20.04 LTS x64。

-

C的编译器是 gcc 9.4.0,编译命令:gcc code.c -o code -lm -O2 -DONLINE_JUDGE

-

C++的编译器是 g++ 9.4.0,编译命令:g++ code.cpp -o code -lm -O2 -DONLINE_JUDGE。默认为 C++14,如果选择特定语言版本会添加 -std= 参数。

-

Pascal的编译器是 fpc 3.0.4,编译命令:fpc code.pas -O2

-

Python会先编译为优化过的字节码.pyo文件。支持的Python版本分别为Python 2.7和3.8。

-
-
-
-
- -
-
-
    -
  • Accepted: 答案正确。恭喜大佬,您通过了这道题。
  • -
  • Wrong Answer: 答案错误。仅仅通过样例数据的测试并不一定是正确答案,一定还有你没想到的地方。
  • -
  • Runtime Error: 运行时错误。像非法的内存访问,数组越界,指针漂移,调用禁用的系统函数都可能出现这类问题,请点击评测详情获得输出。
  • -
  • Time Limit Exceeded: 时间超限。请检查程序是否有死循环,或者应该有更快的计算方法。
  • -
  • Memory Limit Exceeded: 内存超限。数据可能需要压缩,或者您数组开太大了,请检查是否有内存泄露。
  • -
  • Output Limit Exceeded: 输出超限。你的输出居然比正确答案长了两倍!
  • -
  • Dangerous Syscalls: 危险系统调用,你是不是带了文件,或者使用了某些有意思的system函数?
  • -
  • Judgement Failed: 评测失败。可能是评测机抽风了,也可能是服务器正在睡觉;反正不一定是你的锅啦!
  • -
  • No Comment: 没有详情。评测机对您的程序无话可说,那么我们也不知道到底发生了什么...
  • -
-
-
-
-
- -
-
-

没错就是这样!除非是特殊情况,测评程序时的栈大小与该题的空间限制是相等的!

-
-
-
-
- -
-
-

对于这类问题,我们在这里简单列一下可能原因:

-
    -
  • Linux中换行符是'\n'而windows中是'\r\n'(多一个字符)。有些数据在Windows下生成,而评测环境为Linux系统。这种情况在字符串输入中非常常见。
  • -
  • 评测系统建立在Linux下,可能由于使用了Linux的保留字而出现CE,但在Windows下正常。
  • -
  • Linux对内存的访问控制更为严格,因此在Windows上可能正常运行的无效指针或数组下标访问越界,在评测系统上无法运行。
  • -
  • 严重的内存泄露的问题很可能会引起系统的保护模块杀死你的进程。因此,凡是使用malloc(或calloc,realloc,new)分配而得的内存空间,请使用free(或delete)完全释放。
  • -
  • 当然数据可能真的有问题。但是如果不止一个人通过了这道题,那最好不要怀疑是数据的锅。反之,可以立即联系我们上报!
  • -
-
-
-
-
- -
-
-

博客使用的是Markdown。(好吧……好简陋的……好多功能还没写……)

-

(喂喂喂我们是OJ好吗……要那么完善的博客功能干啥呢……?)

-

其实我觉得Markdown不用教!一学就会!

-

(完蛋了……好像没有Markdown的语法高亮……= =……)

-

我就只介绍最基本的功能好了。其它的自己探索吧~比如这里

- -

**强调** = 强调

-

*强调* = 强调

-

[]() =

-

=

-

![这个文字在图挂了的时候会显示]() = - 这个文字在图挂了的时候会显示

-

`rm orz` = rm orz

-

数学公式萌萌哒$(a + b)^2$萌萌哒 = 数学公式萌萌哒$(a + b)^2$萌萌哒

-

<!-- readmore --> = 在外面看这篇博客时会到此为止然后显示一个“阅读更多”字样

-

来个更大的例子:

-
-					```c++
-					#include <iostream>
-					```
+	$REQUIRE_LIB['bootstrap5'] = '';
+?>
+
+
+
+

常见问题及其解答 (FAQ)

- ```c - #include <stdio.h> - ``` +
是什么
+

+ 见 https://sjzezoj.com/blogs/1。 +

- ```pascal - begin - ``` +
测评环境
+

评测机的系统版本是 Ubuntu Server 22.04 LTS。

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
语言版本编译命令
Cgcc 11.2.0gcc -o code code.c -lm -O2 -DONLINE_JUDGE
C++g++ 11.2.0g++ -o code code.cpp -lm -O2 -DONLINE_JUDGE(语言版本默认为 C++14,如选择其他版本还会添加 -std= 参数)
Pascalfpc 3.2.2fpc code.pas -O2
Python 2Python 2.7.18预先编译为优化过的字节码 .pyo 文件
Python 3Python 3.10.6
Java 8OpenJDK 1.8.0_342javac code.java
Java 11OpenJDK 11.0.16
Java 17OpenJDK 17.0.4
+
+

以上信息仅供参考,实际评测环境可能会有变动。

- ```python - print '' - ``` +
如何上传头像
+

+ 不提供头像存储服务。每到一个网站都要上传一个头像挺烦的对不对?我们支持 Gravatar,请使用 Gravatar 吧!Gravatar 是一个全球的头像存储服务,你的头像将会与你的电子邮箱绑定。在各大网站比如各种 Wordpress 还有各种 OJ 比如 Vijos、Contest Hunter 上,只要你电子邮箱填对了,那么你的头像也就立即能显示了! +

+

+ 快使用 Gravatar 吧!Gravatar 地址:https://cn.gravatar.com。进去后注册个帐号然后与邮箱绑定并上传头像,就 OK 啦! +

- \begin{equation} - \frac{-b + \sqrt{b^2 - 4ac}}{2a} - \end{equation} +
递归 107 层怎么没爆栈啊
+

+ 没错就是这样!除非是特殊情况, 测评程序时的栈大小与该题的空间限制是相等的! +

- #一级标题 - ##二级标题 - ###三级标题 - ####四级标题 -
-

会转换为:

-
#include <iostream>
-
#include <stdio.h>
-
begin
-
print ''
-

\begin{equation} - \frac{-b + \sqrt{b^2 - 4ac}}{2a} - \end{equation}

-

一级标题

-

二级标题

-

三级标题

-

四级标题

-

还有一个很重要的事情,就是你很容易以为在吃换行……

-

那是因为跟LaTeX一样,你需要一个空行来分段。你可以粗略地认为两个换行会被替换成一换行。(当然不完全是这样,空行是用来分段的,段落还有间距啊行首空两格啊之类的属性)

-

唔……就介绍到这里吧。想要更详细的介绍上网搜搜吧~

-

(评论区是不可以用任何HTML滴~但是数学公式还是没问题滴)

-
-
-
-
- -
-
-

唔……好问题。交互式的题一般给了一个头文件要你include进来,以及一个实现接口的源文件grader。好像大家对多个源文件一起编译还不太熟悉。

-

对于C++:g++ -o code grader.cpp code.cpp

-

对于C语言:gcc -o code grader.c code.c

-

如果你是悲催的电脑盲,实在不会折腾没关系!你可以把grader的文件内容完整地粘贴到你的code的include语句之后,就可以了!

-

什么你是萌萌哒Pascal选手?一般来说都会给个grader,你需要写一个Pascal单元。这个grader会使用你的单元。所以你只需要把源文件取名为单元名 + .pas,然后:

-

对于Pascal语言:fpc grader.pas

-

就可以啦!

-
-
-
-
- -
-
-

如果你想出题、想办比赛、发现了BUG或者对网站有什么建议,可以通过下面的方式联系我们:

- -
-
-
-
+
联系方式
+

+ 题目相关问题请联系各校区的竞赛教练以及题目管理员。 +

+

+ 系统相关问题请邮件联系 baoshuoi@baoshuo.ren) + 和 nekko1139855151@qq.com)。 +

+ +
开源项目
+

+ 的源代码存放于 + https://github.com/renbaoshuo/S2OJ。 + 如果你网不太好,打不开 GitHub 的话,也可以点击 https://git.m.ac/baoshuo/S2OJ 查看哦!这两个仓库的内容是一模一样的。 +

+ +
用户手册
+

+ 请移步 S2OJ 使用文档。 +

+