算法模板
qq_36054740
这个作者很懒,什么都没留下…
展开
-
拓扑排序
拓扑排序(搜索) 算法具体步骤如下:1、 调用toposort();2、 在toposort()每次调用dfs()的过程中,都记录了顶点u的完成时间,将顶点u按完成顺序保存在存放拓扑排序顺序的数组topo[]中。这样,该数组就存放了按先后顺序访问完成的所有顶点。3、 最后拓扑排序得到的线性序列,即为topo[]的逆序。bool visit[maxn];int topo[m原创 2017-06-05 00:18:45 · 193 阅读 · 0 评论 -
数论——素数筛法
1.基本筛法#define N 16777220bool prime[N];void doprime1(){ int m, n, t; memset(prime, 1, sizeof(prime)); int e =(int)sqrt(float(N)); prime[0] = prime [1] = false; for(int i=4; i<=N; i+原创 2017-07-10 16:28:16 · 285 阅读 · 0 评论 -
计算几何——多边形 计算几何误差修正
任务:给定一个double类型的数,判断它的符号说明:计算几何经常涉及精度问题,需要对一个很小的数判断正负,所以需要引入一个极小量eps接口 int cmp(double x)输入: x 判断符号的数输出: x的符号,-1表示x为负数,1表示x为正数,0表示x为0代码const double eps =1e-8;int cmp(double x){ if(fabs(x)<eps)原创 2017-07-08 16:30:21 · 382 阅读 · 0 评论 -
计算几何——多边形 计算几何点类
任务:设计一个二维点类,可以进行一些向量运算 接口:结构体:point成员变量: double x,y 点的坐标重载运算符:+,-,*,/,==成员函数: input() 输入一个点 norm() 计算向量模长相关函数: double sqr(double x) 计算一个数的平方 double det原创 2017-07-08 17:42:41 · 326 阅读 · 0 评论