Crayon使用介绍(不完全
简介
Crayon是基于cpp的数据生成器
优点在于只要是一般的OIer
,都可以轻易出数据
在此之前你需要完成前置操作
文件操作
Crayon支持基础的数据生成中遇到的文件操作
你需要在makedata.cpp
的同目录下创建 testdeta
文件夹
make_in(*int data_id);
make_in
是一个打开in
文件的函数,使用这个你可以重定向输出到编号对应的in
文件
例如:
make_in(5);
上面的代码可以重定向到testdata5.in
同样的我们有:
make_out(*int data_id);
这个函数会将std
重定向到编号对应的out
文件
(确保目录下存在std
,在Windows环境应为std.cpp
)
随机数
Crayon通过cyrand函数生成想要的随机数:
cyrand(*int begin,*int end);
其中,begin
为随机数下界,end
为随机数上界
同时支持long long
范围的随机数:
cyrand_ll(*long long begin,*long long end);
图
定义:
graph<type> a;
type
是指边权的类型,目前支持完善的为int
对于其他的边权,在调用随机性质的函数时,需要自己编写相关的rand
函数,形式为:
T randfunc(*T min,*T max)
下面列出支持的随机图函数
rand_graph(*int n,*int m,*T min,*T max,T(*randfunc)(T,T)) //用randfunc函数随机制造出边权在范围内的n点m边的图
rand_dag(*int n,*int m,*T min,*T max,T(*randfunc)(T,T)) //用randfunc函数随机制造出边权在范围内的n点m边的有向无环图
rand_tree(*int n,*int k,*T min,*T max,T(*randfunc)(T,T)) //用randfunc函数随机制造出边权在范围内的n点k叉的无根树
connect_graph(*int n,*int k,*T min,*T max,T(*randfunc)(T,T)) //用randfunc函数随机制造出边权在范围内的n点m边的连通图
上述的函数在使用过程中,自行保证参数的合理性
如果无法保证,返回的graph
可能有未知错误