程序设计比赛举办命题工作流程总结
所需步骤:题目选择,题面制作,题解制作,题目上传。
所需平台:codeforces(一个算法题目练习平台,用来题目的选择),polygon(codeforces制题平台,用来题面制作),overleaf(latex编译平台,用来题解的制作),Domjudge(ICPC官方测评平台,用来题目的上传)。
题目选择部分
题面制作部分
- New problem 可以创建新的题目,New Contest可以创建新的比赛,最后需要在整体的比赛中导出题目。
- 填写新问题的编号名字,因为无法填写中文或大写,所以我一般都填写为:题目单词缩写-难度,如:fpt-1700 。
- 左边为题目的时间限制,内存限制,这并不过多解释;上边和右边为题面制作的重点。
- 为了题目能够支持中文编译,所以先更改配置文件。首先点击上方的Files,进入后点击statement.ftl的Edit,将其中的配置替换为以下:
\documentclass [11pt, a4paper, oneside] {article}
\usepackage {CJK}
\usepackage [T2A] {fontenc}
\usepackage [utf8] {inputenc}
\usepackage [english, russian] {babel}
\usepackage {amsmath}
\usepackage {amssymb}
\usepackage <#if contest.language?? && contest.language="russian">[russian]<#elseif contest.language?? && contest.language="ukrainian">[ukrainian]</#if>{olymp}
\usepackage {comment}
\usepackage {epigraph}
\usepackage {expdlist}
\usepackage {graphicx}
\usepackage {ulem}
\usepackage {import}
\usepackage{ifpdf}
\ifpdf
\DeclareGraphicsRule{*}{mps}{*}{}
\fi
\begin {document}
\begin{CJK}{UTF8}{gbsn}
\contest
{${contest.name!}}%
{${contest.location!}}%
{${contest.date!}}%
\binoppenalty=10000
\relpenalty=10000
\renewcommand{\t}{\texttt}
<#if shortProblemTitle?? && shortProblemTitle>
\def\ShortProblemTitle{}
</#if>
<#list statements as statement>
<#if statement.path??>
\graphicspath{{${statement.path}}}
<#if statement.index??>
\def\ProblemIndex{${statement.index}}
</#if>
\import{${statement.path}}{./${statement.file}}
<#else>
\input ${statement.file}
</#if>
</#list>
\end{CJK}
\end {document}
- 点击右侧的Checker,设置题目的判题器,这里我常选择第三个lcmp.cpp-Lines。
- 点击右侧的tests设置题面样例,输入题面样例,并且点击Use in statements。
- 点击右侧的Solutions,上传一份标准题解代码。
- 点击Statements,选择Chinese,随后使用Latex编辑题干,输入输出范围,样例解答。
- 点击In PDF预览PDF,无误后右键保存(既导出)。
- 点击右侧最下面的commit,提交所有更改
- 常见问题:下划线_需要用反斜杠\转义,否则无法编译;Files需要修改,否则无法编译中文;不同人的同一题目有不同版本,可能是修改后未提交。
题解制作部分(beamer ppt)
- 先点击tamplates,搜索beamer,随意选择一个模板。
- 然后将ppt模板代码复制其中。本模板每一道题目分为简明题意和题解两页,可直接向其中填写。(注意,下方代码承办单位logo哪里需要按自己需求填写后才可以编译运行)
\documentclass{beamer}
\usepackage{ctex, hyperref}
\usepackage[T1]{fontenc}
% other packages
\usepackage{latexsym,amsmath,xcolor,multicol,booktabs,calligra}
\usepackage{graphicx,pstricks,listings,stackengine}
\author{作者}
\title{比赛名称}
\subtitle{官方题解}
\institute{举办单位}
\date{时间}
\usepackage{nnu}
% defs
\def\cmd#1{\texttt{\color{red}\footnotesize $\backslash$#1}}
\def\env#1{\texttt{\color{blue}\footnotesize #1}}
\definecolor{deepblue}{rgb}{0,0,0.5}
\definecolor{deepred}{rgb}{0.6,0,0}
\definecolor{deepgreen}{rgb}{0,0.5,0}
\definecolor{halfgray}{gray}{0.55}
\lstset{
basicstyle=\ttfamily\small,
keywordstyle=\bfseries\color{deepblue},
emphstyle=\ttfamily\color{deepred}, % Custom highlighting style
stringstyle=\color{deepgreen},
numbers=left,
numberstyle=\small\color{halfgray},
rulesepcolor=\color{red!20!green!20!blue!20},
frame=shadowbox,
}
\begin{document}
\kaishu
\begin{frame}
\titlepage
\begin{figure}[htpb]
\begin{center}
\includegraphics[width=0.25 \linewidth]{pic/承办单位的Logo}
\end{center}
\end{figure}
\end{frame}
\begin{frame}{题目名称}
\begin{block}{简明题意}
\end{block}
\end{frame}
\begin{frame}{题目名称}
\begin{block}{题解}
\end{block}
\end{frame}
\end{document}