图和树 Graph and tree - luosiwei-cmd/CarYon GitHub Wiki
CarYon 支持建立图的功能。关于图生成测试样例的例子请查看 example 文件夹中的 Luogu P3366 文件夹,是P3366(最小生成树)的数据生成例子。
可以通过下面的命令建立一个图:
template<typename T> //这一行不用写
graph<T> example;这就生成了一个边权类型为 T 的图了。
加入边到已经生成的图中,需要:
example.addedge(/*start*/,/*end*/,cyrand(/*min*/,/*max*/))rand_graph(n,m,min,max,cyrand);可以返回一张 n 点 m 边边权在 min 到 max 之间的一张随机图。
如果要把这生成的图赋值,直接:
example=rand_graph(n,m,min,max,cyrand);仅需使用函数 ingraph,例如:
graph<int> a;
a=rand_graph(n,m,min,max,cyrand);
ingraph(a);下面介绍一些有用的函数:
example.is_connect();这个函数返回一个布尔类型的值,代表图是否联通。
example = rand_dag(n,m,min,max,cyrand);返回一个有向无环图。
example = rand_tree(n,k,min,max,cyrand);返回一个 n 个点的 k 叉树。
example = connect_graph(n,m,min,max,cyrand);制作一个随机连通图。