“`
\newcommand{\PreserveBackslash}[1]{\let\temp=\#1\let\=\temp}
\newcolumntype{C}[1]{>{\PreserveBackslash\centering}p{#1}}
\newcolumntype{R}[1]{>{\PreserveBackslash\raggedleft}p{#1}}
\newcolumntype{L}[1]{>{\PreserveBackslash\raggedright}p{#1}}
\zihao {2} XXX 信息竞赛(XXOI201X)
\geometry{left=3.18cm,right=3.18cm,top=2.54cm,bottom=2.54cm}
\thispagestyle{empty}
\begin{center}
\zihao {-3}\textbf {(请选手务必仔细阅读本页内容)}
\end{center}
\zihao {-3}\textbf {(请选手务必仔细阅读本页内容)}
\end{center}
\textbf {一、题目概况}
\begin{center}
\begin{tabular}{*{5}{|C{7em}}|}
\hline
中文题目名称 & & & & \ \hline
英文题目与子目录名 & & & & \ \hline
可执行文件名 & & & & \ \hline
输入文件名 & .in & .in & .in & .in \ \hline
输出文件名 & .out & .out & .out & .out \ \hline
每个测试点时限 & 1 秒 & 1 秒 & 1 秒 & 1 秒 \ \hline
内存上限 & 128M & 128M & 128M & 128M \ \hline
测试点数目 & 10 & 10 & 10 & 10 \ \hline
每个测试点分值 & 10 & 10 & 10 & 10 \ \hline
附加样例文件 & 有 & 有 & 有 & 有 \ \hline
结果比较方式 & \multicolumn {4}{|c|}{全文比较(过滤行末空格及文末回车)} \ \hline
题目类型 & 传统 & 传统 & 传统 & 传统 \ \hline
\end{tabular}
\end{center}
\begin{tabular}{*{5}{|C{7em}}|}
\hline
中文题目名称 & & & & \ \hline
英文题目与子目录名 & & & & \ \hline
可执行文件名 & & & & \ \hline
输入文件名 & .in & .in & .in & .in \ \hline
输出文件名 & .out & .out & .out & .out \ \hline
每个测试点时限 & 1 秒 & 1 秒 & 1 秒 & 1 秒 \ \hline
内存上限 & 128M & 128M & 128M & 128M \ \hline
测试点数目 & 10 & 10 & 10 & 10 \ \hline
每个测试点分值 & 10 & 10 & 10 & 10 \ \hline
附加样例文件 & 有 & 有 & 有 & 有 \ \hline
结果比较方式 & \multicolumn {4}{|c|}{全文比较(过滤行末空格及文末回车)} \ \hline
题目类型 & 传统 & 传统 & 传统 & 传统 \ \hline
\end{tabular}
\end{center}
\textbf {注意事项:}
- {文件名(程序名和输入输出文件名)必须使用英文小写。}
- {C/C++ 中函数 main () 的返回类型必须是 int,程序正常结束时的返回值必须是 0。}
- {评测时采用的机器配置为:CPU P4.30GHz,内存 1G,上述时限以此配置为准。}
- {特别提醒:评测在 NOI Linux 下进行。}
\newpage
\pagestyle{plain}
\pagenumbering{arabic}
\newpage
1.
\begin{center}
\tt\large{(.cpp/c/pas)}
\end{center}
\tt\large{(.cpp/c/pas)}
\end{center}
1.1. 问题描述
1.4. 输入输出样例 1 1.4.1. 输入样例 1.4.2. 输出样例
1.5. 输入输出样例 2 1.4.1. 输入样例 1.4.2. 输出样例
\newpage
1.
\begin{center}
\tt\large{(.cpp/c/pas)}
\end{center}
\tt\large{(.cpp/c/pas)}
\end{center}
1.1. 问题描述
1.4. 输入输出样例 1 1.4.1. 输入样例 1.4.2. 输出样例
1.5. 输入输出样例 2 1.4.1. 输入样例 1.4.2. 输出样例
\newpage
1.
\begin{center}
\tt\large{(.cpp/c/pas)}
\end{center}
\tt\large{(.cpp/c/pas)}
\end{center}
1.1. 问题描述
1.4. 输入输出样例 1 1.4.1. 输入样例 1.4.2. 输出样例
1.5. 输入输出样例 2 1.4.1. 输入样例 1.4.2. 输出样例
更进一步:
\newcommand{\PreserveBackslash}[1]{\let\temp=\#1\let\=\temp}
\newcolumntype{C}[1]{>{\PreserveBackslash\centering}p{#1}}
\newcolumntype{R}[1]{>{\PreserveBackslash\raggedleft}p{#1}}
\newcolumntype{L}[1]{>{\PreserveBackslash\raggedright}p{#1}}
\zihao {2} NOIP 模拟赛
\geometry{left=3.18cm,right=3.18cm,top=2.54cm,bottom=2.54cm}
\thispagestyle{empty}
\begin{center}
\end{center}
\end{center}
\textbf {一、题目概况}
\begin{center}
\begin{tabular}{*{5}{|C{7em}}|}
\hline
中文题目名称 & 树的构造 & 后缀 & 子序列 & 游戏 \ \hline
可执行文件名 & tree & suffix & subsequence & game\ \hline
输入文件名 & tree.in & suffix.in & subsequence.in & game.in \ \hline
输出文件名 & tree.out & suffix.out & subsequence.out & game.out \ \hline
每个测试点时限 & 1 秒 & 2 秒 & 1 秒 & 1 秒 \ \hline
内存上限 & 512MB & 512MB & 512MB & 512MB \ \hline
题目类型 & 传统 & 传统 & 传统 & 传统 \ \hline
\end{tabular}
\end{center}
\begin{tabular}{*{5}{|C{7em}}|}
\hline
中文题目名称 & 树的构造 & 后缀 & 子序列 & 游戏 \ \hline
可执行文件名 & tree & suffix & subsequence & game\ \hline
输入文件名 & tree.in & suffix.in & subsequence.in & game.in \ \hline
输出文件名 & tree.out & suffix.out & subsequence.out & game.out \ \hline
每个测试点时限 & 1 秒 & 2 秒 & 1 秒 & 1 秒 \ \hline
内存上限 & 512MB & 512MB & 512MB & 512MB \ \hline
题目类型 & 传统 & 传统 & 传统 & 传统 \ \hline
\end{tabular}
\end{center}
\textbf {注意事项:}
- {文件名(程序名和输入输出文件名)必须使用英文小写。}
- {C++ 中函数 main () 的返回类型必须是 int,程序正常结束时的返回值必须是 0。}
- {评测时采用的机器配置为:????,内存??G,上述时限以此配置为准。}
\newpage
\pagestyle{plain}
\pagenumbering{arabic}
\newpage
2. 树的构造
\begin{center}
\tt\large{tree}
\end{center}
\tt\large{tree}
\end{center}
1.1. 问题描述
\textbf {「本题采用捆绑测试」}
- { \texttt{Subtask} 1(25:}
- { \texttt{Subtask} 2(15:}
- { \texttt{Subtask} 3(30:}
- {\texttt{Subtask} 4(30:}
\newpage
3. 后缀
\begin{center}
\tt\large{suffix}
\end{center}
\tt\large{suffix}
\end{center}
1.1. 问题描述
\textbf {「本题采用捆绑测试」}
\newpage
4. 子序列
\begin{center}
\tt\large{subsequence}
\end{center}
\tt\large{subsequence}
\end{center}
1.1. 问题描述
输出一行一个数表示答案。
\begin{center}
\begin{tabular}{|C{6em}|C{2.5em}|C{2.5em}|C{2.5em}|C{2.5em}|C{2.5em}|C{2.5em}|C{2.5em}|C{2.5em}|C{2.5em}|C{2.5em}|}
\hline
\textbf {测试点编号} & $1$ & $2$ & $3$ & $4$ & $5$ & $6$ & $7$ & $8$ & $9$ & $10$ \ \hline
\textbf{$n \leq $} & $10$ & $300$ & $300$ & $2000$ & $2000$ & $10^6$ & $10^6$ & $10^6$ & $10^6$ & $10^6$ \ \hline
\textbf {特殊性质} & \texttt {无} & \texttt {无} & \texttt {无} & \texttt {无} & \texttt {无} & \texttt {A} & \texttt {B} & \texttt {无} & \texttt {无} & \texttt {无} \ \hline
\end{tabular}
\end{center}
\begin{tabular}{|C{6em}|C{2.5em}|C{2.5em}|C{2.5em}|C{2.5em}|C{2.5em}|C{2.5em}|C{2.5em}|C{2.5em}|C{2.5em}|C{2.5em}|}
\hline
\textbf {测试点编号} & $1$ & $2$ & $3$ & $4$ & $5$ & $6$ & $7$ & $8$ & $9$ & $10$ \ \hline
\textbf{$n \leq $} & $10$ & $300$ & $300$ & $2000$ & $2000$ & $10^6$ & $10^6$ & $10^6$ & $10^6$ & $10^6$ \ \hline
\textbf {特殊性质} & \texttt {无} & \texttt {无} & \texttt {无} & \texttt {无} & \texttt {无} & \texttt {A} & \texttt {B} & \texttt {无} & \texttt {无} & \texttt {无} \ \hline
\end{tabular}
\end{center}
\newpage
5. 游戏
\begin{center}
\tt\large{game}
\end{center}
\tt\large{game}
\end{center}
1.1. 问题描述
- { \texttt{Subtask} 1(10:n=1。}
- { \texttt{Subtask} 2(30:∑si≤5000。}
- {\texttt {Subtask} 3(35:∑si≤105,依赖 \texttt {Subtask} 2。}
- {\texttt {Subtask} 4(15:n≤50,依赖 \texttt {Subtask} 1。}
- {\texttt {Subtask} 5(10:无特殊限制,依赖 \texttt {Subtask} 3,4。}
#import "@preview/fuzzy-cnoi-statement:0.1.1": *; // 以下有大量 Fancy 的设置项。你可以根据需求,注释掉你不需要的内容,或者将你需要的内容取消注释。 #let prob-list = ( ( name: "圆格染色", // 题目名 name-en: "color", // 英文题目名,同时也是目录 time-limit: "1.0 秒", // 每个测试点时限(会显示为 $1.0$ 秒) memory-limit: "512 MiB", // 内存限制(显示同上) test-case-count: "10", // 测试点数目(显示同上) test-case-equal: "是", // 测试点是否等分 year: "2023", // 你可以添加自定义的属性 ), // 实际上必需的项只有 name-en // 下面是一些花活 ( name: "桂花树", name-en: "tree", type: "交互型", // 题目类型 time-limit: "0.5 秒", memory-limit: "512 MiB", test-case-count: "10", test-case-equal: "是", year: "2023", // submit-file-name 为提交文件名,可以为 str、content 或一个 extension:str=>content 的函数 // submit-file-name: e => { // show raw: set text(size: 0.8em) // raw("tree." + e) // } // 将其字体变小 ), ( name: "深搜", name-en: "dfs", type: "提交答案型", executable: [无], input: [`dfs`$1~10$`.in`], // 输入文件名 output: [`dfs`$1~10$`.out`], // 输出文件名 test-case-count: "10", test-case-equal: "是", submit-file-name: [`dfs`$1~10$`.out`], ), ( name: "asdasd", name-en: "dfs", type: "提交答案型", executable: [无], input: [`dfs`$1~10$`.in`], // 输入文件名 output: [`dfs`$1~10$`.out`], // 输出文件名 test-case-count: "10", test-case-equal: "是", submit-file-name: [`dfs`$1~10$`.out`], ), ) #let contest-info = ( name: "全国中老年信息学奥林匹克竞赛", name-en: "4202 PION FCC", // 似乎也可以当成副标题用 // round: "第一试", time: "时间:2023 年 7 月 24 日 08:00 ~ 13:00", // author: "破壁人五号" ) #let (init, title, problem-table, next-problem, filename, current-filename, current-sample-filename, data-constraints-table-args) = document-class( contest-info, prob-list, // custom-fonts 参数可以更改字体,字典各项的键值为:mono、serif、cjk-serif、cjk-sans、cjk-mono、cjk-italic,值为字体名。你可以只传入部分项。默认分别为: // - Consolas // - New Computer Modern // - 方正书宋(FZShuSong-Z01S) // - 方正黑体(FZHei-B01S) // - 方正仿宋(FZFangSong-Z02S) // - 方正楷体(FZKai-Z03S) // header 参数可以自定义页眉,你需要传入一个 (contest-info, current-problem) => content 的函数。 // footer 参数可以自定义页脚,你需要传入一个 (contest-info, current-problem) => content 的函数。 ) #show: init #title() #problem-table( // 默认会显示以下行(括号内为默认值,打星号的在没有题目有这一项时不会显示): // - name 题目名称(无) // - type 题目类型(传统型) // - name-en 目录 // - executable 可执行文件名(默认为目录名) // - input 输入文件名(默认为目录名 + ".in") // - output 输出文件名(默认为目录名 + ".out") // - * time-limit 每个测试点时限(无) // - * memory-limit 内存限制(无) // - * test-case-count 测试点数目(10) // - * subtask-count 子任务数目(1) // - * test-case-equal 测试点是否等分(是) // // 一般来说,默认显示的行的设置是够用的。但如果你希望增加更多行,或者当你有太多题目需要展示,你可能需要 extra-rows 参数来添加新的行。 // extra-rows 也可以覆盖掉默认的行。其在题目过多、需要将特定行的字体变小时尤其有用。 extra-rows:( year: ( // 对应的 field 名 name: "年份", // 显示的名字;可以用 content(调整字号等) wrap: text, // 显示的样式:若题目的这一项是 str,则显示为 wrap(str),否则会直接显示这一项。默认为 text。 always-display: false, // 是否总是显示:若为 false,则至少要有一个题目有这一项才会显示。默认为 false。 default: "2023" // 默认值,默认为“无”。你也可以传入一个函数,其接受一个参数,为当前题目的信息,返回一个 str 或 content。 ), contest: ( name: "赛事", wrap: text.with(fill: blue), // 你也可以在这里设置更小的字体 always-display: true, default: "NOI" ), setter: ( // name: text(size: 0.8em)[出题人], // 也许你需要更小的字号 name: "出题人", always-display: true, default: p => { p.name-en + "的出题人" } ), foo: ( name: "bar", wrap: text, default: "这一行不会显示" ) ), // 提交源程序文件名的列表,每一种语言为 (语言名, 文件后缀名) 的二元组,或 (语言名, 文件后缀名, 首列字体大小) 的三元组。若 problem 没有指明 submit-file-name,则用题目英文名与后缀名拼接。 languages:( ("C++", "cpp"), ("D++", "dpp"), // ("D++", "dpp", 0.8em), // 更小的字号 ), // 各个语言的编译选项,每一种语言为 (语言名, 编译选项) 的二元组,或 (语言名, 编译选项, 首列字体大小) 的三元组。 compile-options: ( ("C++", "-O2 -std=c++20 -DOFFLINE_JUDGE"), ) ) *注意事项(请仔细阅读)* + 文件名(程序名和输入输出文件名)必须使用英文小写。 + C++ 中函数 main() 的返回值类型必须是 int,程序正常结束时的返回值必须是 0。 + 因违反以上两点而出现的错误或问题,申诉时一律不予受理。 + 若无特殊说明,结果的比较方式为全文比较(过滤行末空格及文末回车)。 + 选手提交的程序源文件必须不大于 100KB。 + 程序可使用的栈空间内存限制与题目的内存限制一致。 + 只提供 Linux 格式附加样例文件。 + 禁止在源代码中改变编译器参数(如使用 \#pragma 命令),禁止使用系统结构相关指令(如内联汇编)和其他可能造成不公平的方法。 // T1 #next-problem() == 题目描述 输入两个正整数 $a, b$,输出它们的和。 你可以*强调一段带 $f+or+mu+l+a$ 的文本*。用 `#underline` 加 ``` `` ``` 来实现 #underline[`underlined raw text`]。 + 第一点 + 第二点 - 第一点 - 列表可以嵌套 - 但目前,有序列表和无序列表的互相嵌套会有缩进上的问题。 - 第二点 - 第二点的第一点 - 第二点的第二点 == 输入格式 从文件 #current-filename("in") 中读入数据。// 自动获取当前题目的输入文件名 输入的第一行包含两个正整数 $a, b$,表示需要求和的两个数。 == 输出格式 输出到文件 #filename[color.out] 中。 输出一行一个整数,表示 $a+b$。 == 样例1输入 // 从文件中读取样例 #raw(read("color1.in"), block: true) == 样例1输出 // 或者直接写在文档中text
13== 样例1解释
figure(caption: "凹包")[#image("fig.png", width: 40
如@aobao,这是一个凹包。
for (i,case) in range(2, 8).zip((
$1 tilde 5$,
$6 tilde 9$,
$10 tilde 13$,
$14 tilde 17$,
$18 tilde 19$,
$20$)){[
== 样例#{i+2}
见选手目录下的 #current-sample-filename(i, "in") 与 #current-sample-filename(i, "ans")。这个样例满足测试点 #case 的条件限制。
]}== 数据范围
对于所有测试数据保证:$1 <= a,b <= 10^9$。
figure(
table(
columns: 4,
..data-constraints-table-args, // 默认的针对数据范围的三线表样式
table.header(
[测试点编号], $n,m <=$, $q<=$, [特殊性质],
),
$1 tilde 5$, $300$, $300$, table.cell(rowspan:2)[无],
$6 tilde 9$, table.cell(rowspan:4)[$10^5$], $2000$,
$10 tilde 13$, table.cell(rowspan:4)[$10^5$], [A],
$14 tilde 17$, [B],
$18 tilde 19$, table.cell(rowspan:2)[无],
$20$, $10^9$,
)
)特殊性质 A: 你可以像上面这样创建复杂的表格。
// T2
next-problem()
这是一道交互题。
== 题目描述
lorem(50)
== 实现细节
请确保你的程序开头有 `#include "tree.h"`。int query(int x, int y); void answer(std::vectorans); g++ count.cpp -c -O2 -std=c++14 -lm && g++ count.o grader.o -o count我能吞下玻璃而不伤身体。
- 赵钱孙李周吴郑王,冯陈楮卫蒋沈韩:
- 杨朱秦尤许何吕施张孔。
- 曹严华金魏陶姜戚谢。
- 邹喻柏水窦章云苏潘葛奚。
- 范彭郎鲁韦昌马苗凤花,方俞任袁柳酆鲍史唐费廉岑薛雷。
- 贺倪汤滕殷罗毕郝邬安常乐于时傅皮卞齐康伍余,元卜顾孟平黄和穆萧尹姚邵湛汪,祁毛禹狄米贝明臧计伏成戴。
== 评分标准
lorem(50)
lorem(100)
== 数据范围
lorem(50)
// T3
next-problem()
== 题目描述
lorem(50)
== 输入格式
从文件 #filename[dfs$1~10$.in] 中读入数据。
lorem(50)
== 输出格式
输出到文件 #filename[dfs$1~10$.out] 中。
lorem(50)
== 数据范围
对于所有测试数据保证:$1 <= n <= 10^5$。
// T4
next-problem()
== 题目描述
lorem(50)
== 输入格式
从文件 #filename[dfs$1~10$.in] 中读入数据。
lorem(50)
== 输出格式
输出到文件 #filename[dfs$1~10$.out] 中。
lorem(50)
== 数据范围
对于所有测试数据保证:$1 <= n <= 10^5$。
“`
tql,大佬 ggapa 要开始出题了 %%%%%%
然后发现憋不出来一点 idea (悲
今天上化学课 xyf 大佬出了两道题,第一道,让你维护一个存储某有机物的数据结构,你需要支持在线添加原子团,并动态维护它的同分异构体个数(紫 / 黑);第二道,给出一个烷烃的结构简式,并让你写程序为这个有机物命名(绿 / 蓝)
或者说给你一个有机物,让你求其中环丙烷和环丁烷的个数(蓝)
虽然但是,感觉出这种题很容易被骂死
。