0%

node中导入模块:var 名称 = require(‘模块标识符’)

node中向外暴露成员的形式:module.exports = {}

在ES6中,也通过规范的形式,规定了ES6中如何导入和导出模块

ES6中导入模块,使用 import 模块名称 from ‘模块标识符’ import ‘表示路径’

import *** from *** 是ES6中导入模块的方式

阅读全文 »

判题分两部分

1.其中judged为服务进程,d即daemon。负责轮询数据库,提取判题队列。当发现新任务时产生judge_client进程。
2.judge_client进程为实际判题程序,负责准备运行环境、数据,运行并监控目标程序的系统调用,采集运行指标,判断运行结果。

阅读全文 »

Special Judge

通常的ACM题目包括以下几项内容:题目描述(Description)、输入描述(Input)、输出描述(Output)、样例输入(Sample Input)、样例输出(Sample Out),在后台则包括测试输入(Input Data)和测试输出(Output Data)两项。在评测用户提交的程序正确与否时,系统会将样例输入和测试输入重定向作为程序的标准输入,通过判断程序对应的输出是否与期待的输出完全相同,来判断解答是否正确。

对于同一道题目,用户可能使用各种不同的方法来解答,所以对于某些特殊的题目,其结果可能不唯一,但都符合题目要求。此类题目就需要进行特判(Special Judge)。HUSTOJ便提供了特判功能。

阅读全文 »

从代码上HUSTOJ分为两大部分,core和web,分别对应判题和数据管理两大功能。

两者之间数据交换有两种方式:1、通过数据库,轮询。2、通过w3m实现的http请求。

两种方式的选择在判题端的配置文件/home/judge/etc/judge.conf中,HTTP_JUDGE=1则启用后者,默认为前者。

阅读全文 »