在线oj网址


北京邮电大学
http://acm.scs.bupt.cn/onlinejudge/

北京大学
http://acm.pku.edu.cn/JudgeOnline/
http://poj.grids.cn/(内部)

浙江大学
http://acm.zju.edu.cn/

天津大学
http://acm.tju.edu.cn/toj/

武汉大学
http://acm.whu.edu.cn/oak/

FELIOJ
http://acm.whu.edu.cn/felioj/

四川大学
http://acm.scu.edu.cn/soj/

中科大
http://acm.ustc.edu.cn/

哈工大
http://acm.hit.edu.cn/
http://202.118.224.210

华东师范
http://acm.cs.ecnu.edu.cn

杭州电子
http://acm.hdu.edu.cn

吉林大学
http://acm.jlu.edu.cn

西南科大
http://222.196.33.254/JudgeOnline/

哈工程
http://acm.hrbeu.edu.cn/

湖南大学
http://acm.hnu.cn:8080/

福州大学
http://acm.fzu.edu.cn/

北航
http://acm.buaa.edu.cn/

华中科大
http://acm.hust.edu.cn/judge/

南开大学
http://acm.nankai.edu.cn/

北师大:
http://acm.cist.bnu.edu.cn/contest/index.php

VIJOS
http://www.vijos.cn/
(高中生的OJ)

UVA
http://online-judge.uva.es/problemset/

URAL
http://acm.timus.ru/

SGU
http://acm.sgu.ru/

SPOJ
http://www.spoj.pl

EL
http://acm.mipt.ru/judge/problems.pl

KRSU
http://www.olymp.krsu.edu.kg/

USACO
http://train.usaco.org/usacogate



http://www.lydsy.com:808/JudgeOnline/ 大视野在线测评

http://www.rqnoj.cn/ 任青网络信息学奥赛(OI)在线判题系统

http://wikioi.com/accounts/login/?next=/  Wikioi

### 使用 Docker 部署和运行在线判题系统的方法 #### 准备工作 为了成功部署基于 Docker 的在线判题系统,在准备阶段需确保安装并配置好 Docker 和 Docker Compose。这一步骤对于后续操作至关重要。 #### 创建适合的 Dockerfile 文件 针对特定编程语言环境创建定制化的 `Dockerfile` 是必要的,以便为用户提供一致性的编译与执行环境。例如,在构建用于 Java 提交评测的服务容器时,可以将用户提交代码强制规定为主类名为 `Main`[^2]: ```dockerfile FROM openjdk:8-jdk-alpine WORKDIR /app COPY . . CMD ["java", "Main"] ``` 此文件定义了一个基础镜像,并设置了默认的工作目录以及指定了启动命令来运行 `Main.java` 编译后的字节码文件。 #### 构建自定义镜像 通过上述编写好的 `Dockerfile` 来构建专属的 Docker 镜像,从而封装所需的全部依赖项及工具链。该过程可通过如下指令完成: ```bash docker build -t custom-oj-env . ``` 这条命令会读取当前路径下的 `Dockerfile` 并按照其中指示逐步组装成一个新的镜像标签为 `custom-oj-env`。 #### 启动服务容器实例 一旦拥有了合适的镜像之后,则可利用它快速拉起多个隔离良好的临时性评估单元——即所谓的“沙盒”。下面给出了一组典型参数设置用以启动 Go 语言评判节点作为例子[^3]: ```bash docker run \ -it --rm \ --privileged \ --shm-size=256m \ -p 5050:5050 \ --name go-judge \ criyle/go-judge ``` 这里 `-it`, `--rm`, `--privileged`, `--shm-size`, `-p`, `--name` 参数分别代表交互模式、结束后自动清理资源、赋予额外权限、分配共享内存大小、端口映射和服务名称;而最后部分则是目标镜像仓库地址加上具体版本号/标签。 #### 实现安全可靠的远程调用接口 考虑到性能考量及时效控制需求,通常会在宿主机上预先建立连接池管理对象,当接收到新请求到来之际便从中取出空闲链接发起异步 HTTP 请求给对应子进程去真正做事情。期间还需注意捕获可能发生的各种异常状况加以妥善处理[^4]: ```java try { stopWatch.start(); dockerClient.execStartCmd(execId).exec(execStartResultCallback).awaitCompletion(TIME_OUT, TimeUnit.MICROSECONDS); stopWatch.stop(); time = stopWatch.getLastTaskTimeMillis(); } catch (InterruptedException e) { System.out.println("程序执行异常"); throw new RuntimeException(e); } executeMessage.setMessage(message[0]); executeMessage.setErrorMessage(errorMessage[0]); executeMessage.setTime(time); executeMessageList.add(executeMessage); ``` 这段伪代码片段展示了如何借助第三方库(如 Docker-java SDK)简化同底层 API 进行通信的过程,同时记录下整个流程耗时情况供前端展示之用。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GDRetop

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值