摘要: 经过前两周的需求分析和架构设计,本周正式进入判题核心模块的开发。主要内容是Docker CLI沙箱的编译运行能力实现、熔断降级机制和seccomp安全策略。从ACM参赛的角度来看,沙箱是整个判题系统中最核心的部分——它直接决定了代码能否被正确编译和运行,任何阶段的疏漏都可能导致判题结果不准确。 一、 阅读全文
posted @ 2026-04-11 20:45 宋佳奇 阅读(72) 评论(0) 推荐(0)
摘要: 第一周确定了Docker作为代码隔离的技术基础。本周的工作围绕判题子系统的整体架构设计展开:选择同步还是异步的通信模型、如何抽象基础设施层、gRPC在项目中的角色定位。 一、核心决策:同步还是异步? 1.1 两种架构模型的对比 在设计对外接口时,有两种方案可供选择: 方案A——同步gRPC直连:OJ 阅读全文
posted @ 2026-04-07 12:45 宋佳奇 阅读(38) 评论(0) 推荐(0)
摘要: 作为DoReMiFaSo团队中负责判题子系统的开发者,本周的主要工作是明确判题子系统的需求边界、调研代码隔离方案,并学习Docker容器化的核心操作。 一、判题子系统需求拆解 1.1 系统的定位 判题子系统不是OJ后端内部的判题模块,而是一个独立部署的服务,包含HTTP API、异步任务队列、判题W 阅读全文
posted @ 2026-04-07 12:44 宋佳奇 阅读(58) 评论(0) 推荐(0)
摘要: D. In Love 原题链接:https://codeforces.com/contest/1883/problem/D 题目大意: 维护一个区间的集合,然后每次加减区间后,判断集合中是否存在两个区间不相交。 思路: 方法1: 由于区间散布很大,所以常规的离线做法+离散化区间,这种区间问题容易想到 阅读全文
posted @ 2025-05-19 22:29 宋佳奇 阅读(42) 评论(0) 推荐(0)
摘要: G. Unusual Entertainment 原题链接:https://codeforces.com/contest/1899/problem/G 题目大意: 给定一棵树,根节点为1,给定一个\(1\) ~ \(n\) 的排列 \(p\) ,\(q\) 次查询,每次给出 \(l\) 和 \(r\ 阅读全文
posted @ 2025-05-17 15:20 宋佳奇 阅读(23) 评论(1) 推荐(0)
摘要: E 构造矩形 原题链接:https://ac.nowcoder.com/acm/contest/102742/E 思路: 这种询问方案数或者“价值”的题,通常解法要么是维护前缀信息用公式递推求解,要么是正难则反先得到全局再减去不合法的情况。在这里显然是属于前者,那么就可以分情况考虑,不妨固定 \(i 阅读全文
posted @ 2025-03-08 13:36 宋佳奇 阅读(50) 评论(0) 推荐(0)
摘要: D. Points 原题链接:https://codeforces.com/problemset/problem/19/D 开始思路: 看到题目后有一个想法,先将所有坐标进行离散化,在横坐标方向上建立线段树,每个节点维护一个 \(set\) 即对应区间 \(l\) ~ \(r\) 上 \(y\) 轴 阅读全文
posted @ 2025-03-02 16:41 宋佳奇 阅读(158) 评论(0) 推荐(0)