随笔分类 -  Basic Algorithms

摘要:D. Xenia and Bit Operationstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputXenia the beginner pr... 阅读全文
posted @ 2014-11-03 16:29 SixDayCoder 阅读(385) 评论(0) 推荐(0)
摘要:1.什么是线段树:线段树首先是一种二叉搜索树,为什么说是“线段”树呢?完全可以这么理解,即树中的每一个结点中存有一个区域(从起点到终点就好似线段一般),在下文中我将统一的将其称为该节点的管辖区域这样,我们就可以把线性的区域变为半线性的树。树有很多好处,比如说更改和查询操作的时间复杂度都是O(node... 阅读全文
posted @ 2014-10-31 18:39 SixDayCoder 阅读(596) 评论(0) 推荐(0)
摘要:树状数组————BIT(Binary Index Tree),又称二分索引树。不得不承认,二分索引树的名字更能反应它的本质,而树状数组这个名字则更加的直观。与其说是一种算法,不如说是一种数据结构。从名字可以直观的看出,这是一种像是树一样的数组。这就具有很多优点,能够在log(n)的时间内进行查询、求... 阅读全文
posted @ 2014-10-22 20:11 SixDayCoder 阅读(3508) 评论(0) 推荐(1)
摘要:模式匹配:假设有两个字符串string(s代替)和pattern(p代替),其中pattern是要在string中查找的模式。即确定pattern是否在string中并返回其坐标数值。这一过程就称模式匹配。c语言中最基本的就是..strstr函数,但是其效率不高,自己定义的算法完全可以做得更好。介绍... 阅读全文
posted @ 2014-08-29 17:31 SixDayCoder 阅读(400) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1251字典树又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的... 阅读全文
posted @ 2014-08-28 12:08 SixDayCoder 阅读(286) 评论(0) 推荐(0)
摘要:计算几何中最基本重要的算法之一~判断线段相交基础。只需判断线段是否同时满足1.快速排斥实验2.跨立实验1.快速排斥实验:设以线段P1P2为对角线的矩形为T,以Q1Q2线段为对角线的矩形为R,那么下图这种状态时P1P2和Q1Q2肯定不相交判断P1 P2 Q1 Q2是否满足这种关系就是快速排斥实验。ma... 阅读全文
posted @ 2014-08-23 16:45 SixDayCoder 阅读(575) 评论(0) 推荐(0)
摘要:二分图的定义:简单来说,就是将图G的顶点集V划分成两部分。假设为A和B。图G的边集中的任意一条边的两个端点分别属于集合A B,这样的图就叫二分图(也叫二部图)。匹配的定义:给定一个二分图G,在G的一个子图M中,M的边集中的任意两条边都不依附于同一个顶点,则称M是一个匹配。最大匹配定义:满足上述匹配定... 阅读全文
posted @ 2014-08-22 09:33 SixDayCoder 阅读(493) 评论(0) 推荐(0)
摘要:参考资料:《ACM/ICPC程序设计与分析》判断点在线段上这个算法非常的简单,只要学过叉乘(CrossProduct)就很容易搞定设点为Q,线段为P1P2,判断点Q是否在P1P2上。算法依据:1.点Q首先要在P1P2所在的直线上。 比较原始的办法是利用P1P2的坐标做出直线方程,然后代入点Q看是否满... 阅读全文
posted @ 2014-08-21 17:17 SixDayCoder 阅读(7335) 评论(0) 推荐(0)
摘要:经典的最短路算法是Dijkstra算法,但是这个算法有两点缺陷。1.一次Dijkstra只能求单源的最短路径,如果想要求任意两点的距离,就要每一个节点都进行一次Dijkstra,很麻烦。2.运用Dijkstra算法时,要求图中不可以有负权的边。 2是为何呢?可以看下图利用Dijkstra算法,求1-... 阅读全文
posted @ 2014-08-20 20:10 SixDayCoder 阅读(1145) 评论(0) 推荐(0)
摘要:带权图分为有向和无向,无向图的最短路径又叫做最小生成树,有prime算法和kruskal算法生成树的概念:联通图G的一个子图如果是一棵包含G的所有顶点的树,则该子图称为G的生成树 生成树是联通图的极小连通子图。所谓极小是指:若在树中任意增加一条边,则将出现一个回路;若去掉一条边,将会使之变成非连通图... 阅读全文
posted @ 2014-08-10 10:25 SixDayCoder 阅读(1453) 评论(0) 推荐(0)
摘要:改革春风吹满地Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 18591Accepted Submission(s): 9515Problem De... 阅读全文
posted @ 2014-08-05 21:43 SixDayCoder 阅读(338) 评论(0) 推荐(0)
摘要:资料摘自背包九讲 andhttp://blog.csdn.net/wumuzi520/article/details/7014830 andhttp://www.wutianqi.com/?p=539首先说明一下什么是完全背包有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的费用是... 阅读全文
posted @ 2014-08-04 09:55 SixDayCoder 阅读(541) 评论(0) 推荐(0)
摘要:在看了背包九讲以及http://blog.csdn.net/wumuzi520/article/details/7014559这篇博文之后,对于01背包有了更好的理解,下面整理一下以备以后回顾之用。首先,说明一下什么是01背包问题。一共有N个物品,每个物品的价值是w[i],重量是c[i],给你一个容... 阅读全文
posted @ 2014-08-04 08:08 SixDayCoder 阅读(1563) 评论(1) 推荐(0)