自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (3)
  • 收藏
  • 关注

转载 旋转卡壳——多边形间并踵点对(定义)

出处:http://blog.csdn.net/acmaker/article/details/3561150多边形间并踵点对有向切线一个有向切线就如同其名字所阐述的。 有向切线在区分平行切线同向与反向时候是十分必要的。 进一步假设多边形是顺时针序的(当顶点顺序排布时候是顺时针的)并且多边形的切线当多边形在线的右侧时候是正向的。 相反的, 当多边形在切线的左侧时

2013-05-31 11:53:33 1108

转载 旋转卡壳——凸多边形间对踵点对(定义)

出处:http://blog.csdn.net/acmaker/article/details/3561147凸多边形间对踵点对有向切线一个有向切线就如同其名字所阐述的。 有向切线在区分平行切线同向与反向时候是十分必要的。 进一步假设多边形是顺时针序的(当顶点顺序排布时候是顺时针的)并且多边形的切线当多边形在线的右侧时候是正向的。 相反的, 当多边形在切线的左侧

2013-05-31 11:52:48 1099

转载 旋转卡壳——最薄横截带

出处:http://blog.csdn.net/acmaker/article/details/3561141最薄横截带考虑下述设备放置问题:一个“消费群体群”的集合是以个体呈现为平面上凸多边形的一个家庭 F 给出的。 我们的目标是找到一个“设备”, 一条平面上的直线, 使得线到消费者的最大距离最小。 最后一点需要澄清。 直线与任何一个多边形的距离都是指多边形上一点到线的正

2013-05-31 11:51:51 952

转载 旋转卡壳——凸多边形矢量和

出处:http://blog.csdn.net/acmaker/article/details/3561131凸多边形矢量和给定平面上两个凸多边形 P 和 Q , P 和 Q 的矢量和, 记为 P + Q 定义如下:P + Q = { p + q } 所有的分别属于 P 和 Q 的 p 和 q 。多边形矢量和在 motion planning 中也称为 Minkow

2013-05-31 11:50:57 1047

转载 旋转卡壳——临界切线

出处:http://blog.csdn.net/acmaker/article/details/3561127临界切线两个凸多边形间的临界切线(一般被叫做CS线)是使得两个多边形分居线不同侧的切线。 换句话说, 他们分隔了多边形。CS线可以应用于motion planning, visibility 和 range fitting。 下图是关于两个多边形和他们的两条临界切线

2013-05-31 11:50:00 998

转载 旋转卡壳——凸多边形交

出处:http://blog.csdn.net/acmaker/article/details/3561112凸多边形交给定两个多边形, 我们第一个需要讨论的问题应该是:“他们相交吗?”。 Chazelle 和 Dobkin 1980年在他们的一篇叫做“Detection is easier than computation”的论文中发表了一个对数时间级的算法(论文的名字很贴切)。 对

2013-05-31 11:49:09 1110

转载 旋转卡壳——找公切线

出处:http://blog.csdn.net/acmaker/article/details/3561093找公切线公切线是同时与多边形相切的简单直线, 并且两个多边形都位于线的同一侧。 换句话说, 一条公切线是一条与两个多边形都相切的线。 一个例子如下图所示: 两个不相交的凸多边形和一条他们的公切线事实上, 公切线可以通过多边形间的一些确定桥的点对来

2013-05-31 11:48:24 1194

转载 旋转卡壳——合并凸包

出处:http://blog.csdn.net/acmaker/article/details/3561051合并凸包考虑如下问题: 给定两个凸多边形, 包含他们并的最小凸多边形是怎样的? 答案即合并凸包后得到的凸多边形。 合并凸包可以通过一个低效的方式实现: 给定两个多边形的所有顶点, 计算这些点对应的凸包。 更高效的方法是存在的, 他依赖于多边形间的 桥 的查找。 下图

2013-05-31 11:47:42 2125

转载 旋转卡壳——四边形剖分

出处:http://blog.csdn.net/acmaker/article/details/3314243四边形剖分虽然三角剖分是一个更常用的结构, 但最近四边形剖分在某些特定条件下显得更适用, 比如 scattered data interpolation 以及 finite element method 等。 一个四边形剖分实际上是一个点集的四边形分割。 一些与三角剖分本质

2013-05-31 11:45:30 1208

转载 旋转卡壳——洋葱三角剖分

出处:http://blog.csdn.net/acmaker/article/details/3314201洋葱三角剖分给定一个平面上的点集, 目标是构造一个点集的三角剖分。 从Lennes 1911年二次时间复杂度的源算法到Chazelle 1991线性时间复杂度的算法, 前人已经做了许多关于提高三角剖分算法效率的研究。 这里的焦点是关于一种特殊的三角剖分, 一

2013-05-31 11:44:49 1178

转载 旋转卡壳——螺旋三角剖分

出处:http://blog.csdn.net/acmaker/article/details/3314146螺旋三角剖分点集的螺旋三角剖分是基于集合螺旋凸包的三角剖分图。 凸螺旋线可以通过如下方法构造:从一个特定的端点开始(比如给定方向上的最小点), 这里取有最小 x 坐标的点。通过那个点构造一条铅垂线。按照一个给定的方向旋转线(总保持顺时针或者是逆时针方向), 直到线“击”

2013-05-31 11:44:07 1137

转载 旋转卡壳——凸多边形最小周长外接矩形

出处:http://blog.csdn.net/acmaker/article/details/3188177凸多边形最小周长外接矩形这个问题和最小面积外接矩形相似。 我们的目标是找到一个最小盒子(就周长而言)外接多边形 P 。 有趣的是通常情况下最小面积的和最小周长的外接矩形是重合的。 有人不禁想问这是不是总成立的。 下面的例子回答了这个问题: 多边形(灰色的)及其最小面

2013-05-31 11:43:13 2478

转载 旋转卡壳——凸多边形最小面积外接矩形

出处:http://blog.csdn.net/acmaker/article/details/3188123凸多边形最小面积外接矩形给定一个凸多边形 P , 面积最小的能装下 P (就外围而言)的矩形是怎样的呢? 从技术上说, 给定一个方向, 能计算出 P 的端点并且构由此造出外接矩形。 但是我们需要测试每个情形来获得每个矩形来计算最小面积吗? 谢天谢地, 我们不必那么干。

2013-05-31 11:42:29 3356

转载 旋转卡壳——凸多边形间最大距离

出处:http://blog.csdn.net/acmaker/article/details/3178794凸多边形间最大距离给定两个凸多边形 P 和 Q, 目标是需要找到点对 (p,q) (p 属于 P 且 q 属于 Q) 使得他们之间的距离最大。很直观地,这些点不可能属于他们各自多边形的内部。 这个条件事实上与直径问题非常相似: 两凸多边形 P 和 Q 间最大

2013-05-31 11:21:13 2441

转载 旋转卡壳——凸多边形间最小距离

出处:http://blog.csdn.net/acmaker/article/details/3178696凸多边形间最小距离给定两个非连接(比如不相交)的凸多边形 P 和 Q, 目标是找到拥有最小距离的点对 (p,q) (p 属于 P 且 q属于 Q)。 事实上, 多边形非连接十分重要, 因为我们所说的多边形包含其内部。 如果多边形相交, 那么最小距离就变得没有

2013-05-31 11:19:54 1561

转载 旋转卡壳——凸多边形的宽度

出处:http://blog.csdn.net/acmaker/article/details/3177292凸多边形的宽度定义为平行切线间的最小距离。 这个定义从宽度这个词中已经略有体现。 虽然凸多边形的切线有不同的方向, 并且每个方向上的宽度(通常)是不同的。 但幸运的是, 不是每个方向上都必须被检测。     我们假设存在一个线段 [a,b], 以及两条通过 a 和 b 的平

2013-05-31 11:18:58 1918

转载 旋转卡壳——凸多边形直径

出处:http://blog.csdn.net/acmaker/article/details/3177045凸多边形直径我们将一个多边形上任意两点间的距离的最大值定义为多边形的直径。 确定这个直径的点对数可能多于一对。 事实上, 对于拥有 n 个顶点的多边形, 就可能有 n 对“直径点对”存在。  一个多边形直径的简单例子如左图所示。 直径点对在图中显示为被平行线

2013-05-31 11:17:42 1567

转载 旋转卡壳——对踵点对(定义)

出自:http://blog.csdn.net/acmaker/article/details/3561145对踵点对切线给定一个凸多边形 P, 切线 l 是一条与 P 相交并且 P 的内部在 l 的一侧的线。 这个概念与正交切线相似。 对踵点对如果两个点 p 和 q (属于 P) 在两条平行切线上, 那么他们就形成了一个对踵点对

2013-05-31 11:15:37 2080

原创 教你如何申请个人域名

相信很多人都想要一个属于自己的网站,比如www.(你姓名的拼音).cn。(本文介绍.cn结尾域名的申请方法)本文就告诉你如何一步一步申请一个属于自己的网址。第一步:去域名注册网站测测你的姓名是否被别人用过了,没用过就可以申请了网址:www.net.cn1.选域名注册这个选项(图一)2.选姓名域名查询(图二)填上你的姓名和拼音就可以查询了,如果没被占用,就

2013-05-30 13:47:18 18460 9

原创 康拓展开与康拓展开的逆运算

比较简单,百度上讲的够详细了定义:X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0! 其中,a为整数,并且0康托展开的应用实例:1.{1,2,3,4,...,n}表示1,2,3,...,n的排列如 {1,2,3} 按从小到大排列一共6个。123 132 213 231 312 321 。代表的数字 1 2 3

2013-05-28 14:43:44 1431

转载 ACM进阶训练指南

ACM队不是为了一场比赛而存在的,为的是队员的整体提高。大学期间,ACM队队员必须要学好的课程有:l C/C++两种语言l 高等数学l 线性代数l 数据结构l 离散数学l 数据库原理l 操作系统原理l 计算机组成原理l 人工智能l 编译原理l 算法设计与分析除此之外,我希望你们能掌握一些其它的知识,因为知识都是相互联系,触类旁通的。以下学

2013-05-26 21:54:15 1205

转载 母函数

这篇文章转自http://www.wutianqi.com/?p=596在数学中,某个序列的母函数(Generating function,又称生成函数)是一种形式幂级数,其每一项的系数可以提供关于这个序列的信息。使用母函数解决问题的方法称为母函数方法。母函数可分为很多种,包括普通母函数、指数母函数、L级数、贝尔级数和狄利克雷级数。对每个序列都可以写出以上每个类型的一个母函数。

2013-05-24 09:23:23 1004

原创 背包问题合集

看了一天的背包问题,也想了很多,下面决定对0-1背包,完全背包,多重背包做个总结。一.0-1背包定义:何谓0-1背包,可以这样想,那里有一堆值钱的东西,每一样东西只有一件,他们的价值和体积都不一样,现在要你从这n件里面挑选一些放到一个容量一定的背包里面,使得你的背包里的东西总价值最大。对于这些东西的每一件,你可以选择放进你的背包或者是不放进去。(这里放与不放就对应着两种状态0,1),所

2013-05-23 22:50:39 1628

原创 RMQ问题

RMQ(range  minimum/maximum query)即查询区间最大最小值。对于求区间最大最小值,我们自然而然就想到了一个O(n)时间复杂度的算法,但是如果询问有很多呢?这样必然超时。当然我们可以用线段树来解,使得每一次查询的时间降到log(n),但是对于RMQ算法,只要我们做了些预处理,之后的查询我们仅需要O(1)的时间。Sparse_Table算法是解决RMQ问题的一类

2013-05-17 08:39:05 1982

转载 ACM参考算法集

经典训练参照,不解释了,很好~ 1.图论 2.数据结构 3.搜索 4.动态规划 5.模拟 6.数学 7.计算几何 8.博弈论 9.字符串 ========================================= 初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,po

2013-05-15 18:37:40 955

原创 字典树(Trie)

学习字典树一段时间 了,个人觉得字典树比较容易掌握,但是ACM中题目变化多端,我们只有多练习,才能对字典树的应用有更深的把握。下面讲解一下字典树。其实掌握字典树,只需要写过一个关于字典树的程序,记住它的结构就可以了。先看看字典树的定义struct Trie{ Trie *next[MAX]; bool isword;};其实上面那个字典树结点的定义只

2013-05-15 16:46:21 1582

原创 扩展欧几里得

辗转相除法求最大公约数,相信大家都在高中学过了,它也叫做欧几里得算法。那么扩展欧几里得算法呢?它也能求出两个数的最大公约数,不过这不是他的目的,他用来解一个线性方程组扩展欧几里德定理对于不完全为 0 的非负整数 a,b,gcd(a,b)表示 a,b 的最大公约数,必然存在整数对 x,y ,使得 gcd(a,b)=ax+by。这个方程是成立的,这我们不给予证明

2013-05-14 17:12:09 860

转载 lcs 最长公共子序列 O(nlogn)算法

最长公共子序列问题:给定2个字符串,求其最长公共子串。如abcde和dbada的最长公共字串为bd。动态规划:dp[i][j]表示A串前i个和B串前j个的最长公共子串的长度。则若A[i] == B[j] , dp[i][j] = dp[i-1][j-1] + 1;否则 dp[i][j] = max(dp[i-1][j],dp[i][j-1]);时间复杂度O(N*M)。d

2013-05-12 18:27:03 1315

转载 树状数组

写的很详细很好所有转过来了。。。第01讲 什么是树状数组?树状数组用来求区间元素和,求一次区间元素和的时间效率为O(logn)。有些同学会觉得很奇怪。用一个数组S[i]保存序列A[]的前i个元素和,那么求区间i,j的元素和不就为S[j]-S[i-1],那么时间效率为O(1),岂不是更快?但是,如果题目的A[]会改变呢?例如:我们来定义下列问题:我们有n个盒子

2013-05-12 16:21:42 770

原创 并查集

并查集(Union-find set),从字面上来看就是支持合并(union),查找(find) 的集合嘛。下面我们来学习一下这种数据结构 并查集的精髓(即它的三种操作,结合实现代码模板进行理解):1、Make_Set(x) 把每一个元素初始化为一个集合初始化后每一个元素的父亲节点是它本身,每一个元素的祖先节点也是它本身(也可以根据情况而变)。2、Find_Se

2013-05-12 13:09:38 857

原创 MST_prim

关于最小生成树,在本blog的MST_kruskal算法中已经介绍过了,这里介绍另外一种算法即prim算法写讲一下prim算法的基本思想1.初始化所有结点都为未访问2.从图中任选一点,加入到集合V中并标记它为已访问3.从未标记的点中选取到集合V中的顶点中距离最小的,并加入到集合V中,标记它已访问。4,.重复3步骤直到所有的点都选入到集合V中这里讲一下上述步骤的实现1.初

2013-05-11 22:56:23 1180

原创 MST_kruskal算法

MST(minimum spanning tree)即最小生成树算法,经典的有两个,这里介绍一下kruskal算法。关于另外的一个prim算法,本blog也将介绍。何谓最小生成树呢?大家知道树就是每个结点可以相互到达,并且没有环的一种数据结构,这里就不多介绍了,何谓最小生成树呢?就是从一个图中选取若干条边,这些边使得每个结点之间可以相互到达,最关键就是,选取的这些边的权值之和是最小的。下面

2013-05-11 22:15:40 1422

转载 高精度开根

高精度开方,像python,haskell等语言原生支持高精度小数,做这个题不成问题,直接使用api即可。我习惯用java,研究BigDecimal发现里面没有开方的方法,所以需要手动实现。可以采用牛顿逼近法解决开方问题,可以用BigDecimal实现高精度。牛顿逼近法参见:http://baike.baidu.com/view/1514354.htm static int prec = 10

2013-05-10 14:23:29 2177

原创 三分搜索

二分搜索方程的根大家应该都明白,即在给定的函数是单调函数的情况下,我们可以不断的二分来搜索方程的根单是对于凸函数来说二分就不行了什么是凸函数了,大家看图就明白了当然开口向上当然也是 算法比较简单,我们直接讲解模板#include #include #include using namespace std;const double eps = 0.000000

2013-05-09 18:28:37 1118

原创 快速幂

为何叫快速幂呢?显然是幂运算的快速方法。我们计算A^n的朴素的方法就是循环n次来求幂咯,这样便得到O(n)时间复杂度的方法,其实大家都想得到一种优化的方法即A^n=A^(n/2)*A^(n/2),一直递归下去,其间就可以省略很多不必要的计算,得到O(logn)的方法。下面就介绍一种用二进制方法求快速幂的运算。我们用二进制来代替幂n,比如10的二进制为1010(二进制相信大家都会)这

2013-05-09 13:43:12 2689

转载 高效程序员的 7 个共同特征

导读:要想成为一个伟大的程序员,需要的可不仅仅是能够编写出可以正常运行的代码。Justin James给出了能够成为业内顶尖高手的程序员应该具有的几个典型特质。要想成为高效的程序员,你需要具备一定的综合素质才能够让你用你所掌握的技能、经验和知识编写出有效的代码。有一些开发人员在技术方面具备一定的技巧,但他们永远无法成为高效的程序员,就是因为他们缺乏所需的其它几项特质。本文将给出成为一个伟大

2013-05-07 17:00:24 916

原创 一些大牛的blog

http://blog.csdn.net/v_JULY_v/http://www.wutianqi.com/http://blog.csdn.net/zxy_snowhttp://blog.csdn.net/niushuai666未完待续。。。

2013-05-07 16:54:56 942

原创 SPFA算法详解

解决存在负环的图的单源最短路径,bellman-ford算法是比较经典的一个,但是大家都知道,这个算法的效率并不咋的,因为它只知道要求单源最短路,至多做|v|(j图的结点数)次松弛操作,感觉有点盲目吧,这里介绍一个有西南交通大学段凡丁1994年发明的一个算法即SPFA,很大程度上优化了bellman-ford算法(建议没有学过的,先去了解一下这个算法),算法的时间效率我就不说了,因为我觉得当我们熟

2013-05-07 16:42:05 9306 5

原创 floyd详解

求单源最短路的算法相信大家都看过了,下面介绍一个各个点之间的最短路算法,它就是floyd算法,这个算法很好记忆,简单的一个三重循环。我觉得floyd算法其实就用了一个原理:对于图G(v,e)来说,图中从某个点到另外一个点的最短路其间顶多经过|v|个结点,而floyd算法正是将图的所有结点都加进来作为结点i->j的跳板,从而对图的每对结点进行至多|v|次松弛操作.由于算法写起来比较简单,

2013-05-07 15:08:04 1226

转载 java中大数据类在ACM中的应用

ACM/ICPC竞赛中会遇到许多高精度计算的题目,比如两个大整数相加(1111111111111111111111111111111111111111 + 22222343259435894305894301243)。如果我们还采用普通类型比如long long来存储这些值,是装不下这么大的值的了。我们通常的做法是以字符串的形式保存值,然后编程模拟人的计算过程,例如X = “111”;

2013-05-07 14:01:18 1105

复杂网络PPT

这里面有一整套复杂网络的PPT介绍,适合入门者学习。

2013-05-07

WASM汇编开发工具包

这个工具包可以让你直接进行汇编语言的编写 运行。

2013-03-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除