图和树 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);
制作一个随机连通图。