其他
文章平均质量分 60
hdweilao
这个作者很懒,什么都没留下…
展开
-
Bellman-Ford算法【最短路径】
Bellman-Ford算法 Bellman-ford算法是求含负权图的单源最短路径算法,效率很低,但代码很容易写。即进行持续地松弛,每次松弛把每条边都更新一下,若n-1次松弛后还能更新,则说明图中有负环,无法得出结果,否则就成功完成。Bellman-ford算法有一个小优化:每次松弛先设一个标识flag,初值为FALSE,若有边更新则赋值为TRUE,最终如果还是FALSE则直接成功退原创 2015-04-23 19:55:22 · 578 阅读 · 0 评论 -
C语言:位异或运算符
位运算符家族中,最常用的,某过于异或运算符。 异或运算符是指: 参与运算的两个值,如果两个相应位相同,则结果为0,否则为1。即:0^0=0, 1^0=1, 0^1=1, 1^1=0 例如:10100001^00010001=10110000 0^0=0,0^1=1 可理解为: 0异或任何数,其结果=任何数 1^0=1,1^1=0 可理解为: 1异或任何数,其结果=任何数取反原创 2014-08-04 18:01:06 · 916 阅读 · 0 评论 -
字符串格式化命令sprintf
字符串格式化命令,主要功能是把格式化的数据写入某个字符串中。sprintf 是个变参函数。原创 2014-08-05 09:29:15 · 845 阅读 · 0 评论 -
字符串转换函数
头文件:stdlib.h 1、函数名: atof 功 能: 把字符串转换成浮点数 名字来源:ascii to floating point numbers 的缩写 用 法: double atof(const char *nptr); 函数说明 atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字原创 2015-03-12 17:35:59 · 333 阅读 · 0 评论 -
sort 与 qsort
sort函数的用法 头文件加上: #include using namespace std; 做ACM题的时候,排序是一种经常要用到的操作。如果每次都自己写个冒泡之类的O(n^2) 排序,不但程序容易超时,而且浪费宝贵的比赛时间,还很有可能写错。STL里面有个sort函数,可以直接对数组排序,复杂度为n*log2(n)。使用这个函数,需要包含头文件。 这个函原创 2014-08-06 09:41:46 · 293 阅读 · 0 评论 -
填数问题
u在n*n方阵里填入1,2,...,n*n.要求填成如下所示.例如n=4时方阵为: u u 10 11 12 1 u 9 16 13 2 u 8 15 14 3 7 6 5 4原创 2014-08-01 21:05:21 · 539 阅读 · 0 评论 -
简单的大正整数计算器
在同一个程序中实现大整数的+ _ * /运算(200位以内)原创 2014-07-31 10:38:07 · 522 阅读 · 0 评论 -
单调队列
单调增或减的队列,作用于广告印刷、动态规划等。 (单调增为例) 1、入队时,从队尾向前扫描,直到找到队内某个元素小于它,把它放在这个元素的后面,将它作为队尾,即删除队内比它大的所有元素。 它入队比所要删除的元素晚,证明它的位置一定大于所要删除元素的位置,根据这一点,我们可以推出: 在以后的选择中,当所要删除元素的位置在所要找的区间时,它也一定在所要找的区间内。 而它又比所要删除元素小,所原创 2015-07-27 15:04:31 · 329 阅读 · 0 评论 -
关于矩阵的一些问题
1、关于矩阵快速幂 #define maxn 110 struct Matrax{ int map[maxn][maxn]; } per, A; int n,m; void init(){ for( int i = 0 ; i < n ; ++i ){ for( int j = 0 ; j < n ; ++j ){原创 2015-08-24 20:56:37 · 523 阅读 · 0 评论 -
并查集
什么是并查集? 并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。进行快速规整。 [编辑] 并查集的主要操作 合并两个不相交集合 判断两个元素是否属于同一集合 [编辑] 主要操作的解释及代码 需要注意的是,一开始我们假设元素都是分别属于一个独立的集合里的。 (1) 合并两个不相交原创 2014-08-14 20:51:26 · 212 阅读 · 0 评论 -
多边形面积公式证明
证明 1 : 我们先简单地从三个点入手 ( 包括原点 ) 。 面积 S △ OAB = SABCD - S △ OAD - S △ OBC · SABCD = (y0 + y1) × (x0 - x1) ÷ 2 · S △ OAD = x0原创 2014-10-27 21:49:59 · 594 阅读 · 0 评论 -
SPFA算法【最短路径】
SPFA算法 只要最短路径存在,SPFA算法必定能求出最小值,SPFA对Bellman-Ford算法优化的关键之处在于意识到:只有那些在前一遍松弛中改变了距离估计值的点,才可能引起他们的邻接点的距离估计值的改变。为什么队列为空就不改变了呢?就是因为要到下一点必须经过它的前一个邻接点。。SPFA可以处理负权边。很多时候,给定的图存在负权边,这时类似Dijkstra等算法便没有了用武之地,而原创 2015-04-23 20:21:53 · 272 阅读 · 0 评论 -
树状数组
树状数组 ——神奇而小巧的数据结构 树状数组同样可以在O(logN)的时间复杂度下完美的解决引例中的所有操作,同样我们只需要一个一维数组tree[]。其中tree[i]表示[i-(i&(-i))+1,i]这个区间的 和(戒者最大值,以下只讨论和)。其 中i&(-i)表示i的二进制表示中最末一个1 的权值。例如tree[12]表示的是 [1001,1100]这一段的和 若sum(i)表示原创 2015-03-14 15:35:49 · 278 阅读 · 0 评论 -
Floyd算法(最短路径)
Floyd算法又称为,插点法,是一种用于寻找给定的加权图中多源点之间最短路径的算法。原创 2014-11-07 22:06:34 · 420 阅读 · 0 评论 -
线段树
线段树 ——解决区间类问题的利器! 线段树其实是一棵“二叉树”,其形状跟一般的二叉树没有区别。只 是在这样一棵二叉树中,每个结点记彔的是一段区间的信息。 父亲:[l,r] 左儿子:[l,(l+r)/2] 右儿子:[(l+r)/2+1,r] 那么怎么存储这样一棵线段树呢 定义如下结构体: struct node { int left,right; //该结点表示区间原创 2015-03-14 16:37:01 · 238 阅读 · 0 评论 -
strstr函数
strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。找到所搜索的字符串,则该函数返回字符串的地址;如果未找到所搜索的字符串,则返回NULL。原创 2014-08-05 09:39:47 · 444 阅读 · 1 评论 -
错排问题及错排公式
问题: 十本不同的书放在书架上。现重新摆放,使每本书都不在原来放的位置。有几种摆法? 这个问题推广一下,就是错排问题,是组合数学中的问题之一。考虑一个有n个元素的排列,若一个排列中所有的元素都不在自己原来的位置上,那么这样的排列就称为原排列的一个错排。 n个元素的错排数记为D(n)。 研究一个排列错排个数的问题,叫做错排问题或称为更列问题。 错排问题最早被尼古拉·伯努利和欧拉研究,因此历史上也原创 2014-08-05 16:04:06 · 751 阅读 · 0 评论 -
Fibonacci(斐波那契)
斐波那契数列通项公式:An=(1+)原创 2014-07-31 17:12:32 · 446 阅读 · 0 评论 -
迪杰斯特拉算法(dijkstra)——最短路径
迪杰斯特拉算法是从一个顶点到其余各顶点的最短路径算法,解决的是有向图中最短路径问题。迪杰斯特拉算法主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。原创 2014-11-07 21:11:36 · 872 阅读 · 0 评论 -
epoll+线程池实现http文件下载
server.c #include #include #include #include #include #include #include #include #include #include #include"threadpool.h" #include #include #define MAX_LEN 1024 #define MAX_SIZE 100 void *worker(voi原创 2016-08-01 17:16:20 · 730 阅读 · 0 评论