CarYon简明使用指南
01_下载工具
github
蓝奏云
wiki下载
建议从蓝奏云下载,速度更快。
02_解压缩
将下载后的压缩包解压缩。
解压缩后文件夹分布为:
- examples
- A B Problem
- CF1A Theatre square
- Luogu P1093
- Luogu P3366
- tools
- Compare
- Configurstion-File-Analysis
- Extensions
- caryon.h
- myprogram.cpp
- test.cpp
- std.cpp
简要说明
- example
这个文件夹会存放一些使用的例子:
- A B Problem : 最基础的样例生成
- CF1A :较为基础的样例生成
- P1093:多组样例生成
- P3366 :图论相关的数据生成
- tools
相关工具。初级使用时不用关注。
- Compare:对拍器
- Configurstion-File-Analysis:仅编写配置文件生成数据
- Extension:插件
03_制作数据
03_1 std文件
将题目的标准代码复制、粘贴到 std.cpp
中。并编译源文件,使其生成 std.exe
文件。
注意:每次对std.cpp
的更改,都需要重新编译生成std.exe
文件。
03_2 test文件
根据输入格式要求,在test.cpp
中构建相应输入代码。
#include "caryon.h"
// including <bits/stdc .h>
using namespace std;
using namespace ca; // namespace
int main() {
dataname = ""; // dataname
maxtime = 1000;
makein(/*start*/, /*end*/) {
csh();
// Please finish these rows
}
makeout(/*start*/, /*end*/);
//debug(/*start*/, /*end*/); 程序对拍
return 0;
}
datename
中存放题目名称。之后会生成name1.in
、name1.out
这样对应的数据。建议留空,使其生成1.in
、1.out
这样的数据。maxtime
:程序实现。不用改动。makein
和makeout
中的start
和end
参数。对应你需要生成的数据点开始、结束编号。如你想生成start.in,start.out
~end.in,end.out
的数据,填上相应的参数即可。- 在
makein
内部,csh
的下方,根据输入要求书写对应的代码。
03_3 随机数据
cyrand(a,b)
可返回一个在 a
到b
之间的随机数。
如果要产生一个long long
范围内的随机数,用cyrand_ll()
03_4 写入in文件
将生成的随机值写入到文件中。
inint(int)
:将一个整型的变量或常量写入每一个输入文件。instring(std::string)
:将一个 C 字符串写入每一个输入文件。- 任意类型格式:
in<元素类型>(对应类型数据)
: 例:long long a;in<long long>(a)
inendl()
:在输入文件中打印一个换行符。inspace()
:在输入文件中打印一个空格。
03_5 制作out文件
根据输入要求写好test.cpp
文件后,编译运行即可。
此时,在test.cpp
所在的目录里面必须有std.exe
文件,也就是俗称的标准程序。注意一定是标准程序经过编译后的 std.exe
文件,才能制造出对应的out文件。在 std.cpp
中不需要包含任何文件操作。
例子说明
输入格式
代码语言:javascript复制#include "caryon.h"
// including <bits/stdc .h>
using namespace std;
using namespace ca; // namespace
int main() {
dataname = ""; // dataname留空
maxtime = 1000;
makein(/*start*/8, /*end*/10) {//针对100%的数据,生成测试点8.in ~ 测试点10.in
csh();
// Please finish these rows
int n=cyrand(1e5,1e6);// n的范围 1e5 ~ 1e6 ,与前面的70%的数据作区分。
inint(n);//写入n
instring("n");//写入换行 也可用inendl()
for(int i=1;i<=n;i ){//循环n次
inint(cyrand(1,2e9));//写入随机出的Hi, 范围 1 ~ 1e9
instring(" ");//写入空格
inint(cyrand(1,1e3));//写入随机出的Vi, 范围 1 ~ 1e3
instring("n");//写入换行
}
}
makeout(/*start*/8, /*end*/10);//针对100%的数据,生成测试点8.out ~ 测试点10.out
//debug(/*start*/, /*end*/);
return 0;
}
注意
当前爱思创题库的题目数据需注意行末的空格。行末不要有多余的空格。
Q.E.D.