- 博客(101)
- 资源 (3)
- 收藏
- 关注
原创 博客迁移到 https://blog.kernight.com
博客迁移到 http://blog.ykgzs.com弄了好几天,终于把主机搞定了。原来有一个博客,自从自己开始做web开发之后,就觉得应该有一个自己独立的主机,这样子做的demo就能很直接的呈现出来,而且平时做一些开发也能消除局限性了。不管怎么说,也算一个新的开始,继续加油吧。访问:http://blog.ykgzs.com 是我的博客
2015-12-05 23:04:34 1418
原创 蓝桥杯 算法提高 学霸的迷宫
算法提高 学霸的迷宫 时间限制:1.0s 内存限制:256.0MB问题描述 学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗。但学霸为了不要别人打扰,住在一个城堡里,城堡外面是一个二维的格子迷宫,要进城堡必须得先通过迷宫。因为班长还有妹子要陪,磨刀不误砍柴功,他为了节约时间,从线人那里搞到了迷宫的地图,准备提前计算最短的路线。可是他现在正
2015-11-30 16:46:03 4891
原创 HDU 1239 Calling Extraterrestrial Intelligence Again
HDU 1239Calling Extraterrestrial Intelligence Again题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1239题目大意:两个素数 p, q 并且 p*q 4 求最大的q,p值有上面可以得出,判断的过程并不难,把100000以内素数全部求出,然后两两判断就行了。但是,
2015-11-07 21:24:33 670
原创 HDU 2133 What day is it
HDU 2133What day is it题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2133题目大意:给出一个日期。求这个日期是星期几?如果日期格式非法,则输出 ”illegal“ 。 有一个公式叫蔡勒公式,但是运算结果有差错,我不知道是不是我计算有问题,这里不做讨论。另外一种暴力的方法就是计算出该日期距离00
2015-11-07 21:21:17 648
原创 HDU 2600 War
HDU 2600 War题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2600题目大意:给出一个初始区间和n个覆盖区间。如果所有的覆盖区间不能全部覆盖初始区间,则输出区间上没有被覆盖的最大的点。如果初始区间被完全覆盖,则输出 “Badly!”。 典型的贪心,区间覆盖四个字都写到脸上了。对于所有的覆盖区间[Ai,Bi
2015-11-07 21:17:52 570
原创 HDU 1176 免费馅饼
HDU 1176免费馅饼题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1176这道题是二维动态规划,有两个需要考虑的变量:时间T,位置P。由题意可得,我们需要求出的最终结果是:在最终时间T_max时,位置从0到10中得到馅饼数量最多的数量。这里涉及到一个问题,时间T和位置P,应该先求哪个的值?也就是说,在循环规划的过程中,有这两种
2015-11-07 21:10:36 550
原创 VS c2065 未声明的标识符 另外一种解决方案
有时候声明了变量,但是编译时通不过就像这样检查头文件也没错,怎么办?改下编码~~ 如果有中文注释的话,就要把文档格式改为 936(简体中文)点击: “文件”->“高级保存选项” 然后修改编码即可
2015-10-27 00:41:49 7201 6
原创 ROS机器人开发(一)环境配置
桌面环境:Ubuntu 14.04数据采集: Kinect V2软件:ROS 机器人操作系统地址:http://www.ros.org/libfreenect Kinectv2的非官方驱动 地址:https://github.com/OpenKinect/libfreenect
2015-10-20 20:27:58 1134
原创 步步为营(十七)动态规划(一)理论初探
终于讲到动态规划了~该来的总会来的……作为算法的一大核心,我大动态规划的影响力不可谓不大。很多工业级的算法里,都清晰可见动态规划的模样。 你问我为何这么普及?道理很简单。丫的动态规划也是一种思想!!!相信刚开始学算法的同学都有过被贪心虐的死去活来的时候,那种策略的论证过程,有时明明就是只差一点点,但是就是做不出…… 如果你喜欢这种感觉,那么恭喜你,动态规划也是充斥着这种没着没落的感觉…… 如果
2015-08-03 10:32:45 966
转载 Libevent中英文文档地址
英文文档地址:http://www.wangafu.net/~nickm/libevent-book/TOC.html中文文档地址:http://wenku.baidu.com/view/7fbf4461a98271fe910ef9ba.html?re=view
2015-07-31 18:40:34 707
原创 步步为营(十六)搜索(二)BFS 广度优先搜索
上一篇讲了DFS,那么与之对应的就是BFS,也就是 宽度优先遍历,又称广度优先搜索算法。首先,让我们回忆一下什么是“深度”: 更学术点的说法,可以看做“单位距离下,离起始状态的长度”那么广度是什么呢? 个人觉得,可以这么归纳: 何为广度? 可以看做“距离初始状态距离相等的结点”的集合那么BFS的核心思想就是:从初始结点开始,搜索生成第一层结点,检查目标结点是否在这些结点中,若没有,再将
2015-07-30 17:13:02 854
原创 步步为营(十五)搜索(一)DFS 深度优先搜索
前方大坑预警!先讲讲什么是搜索吧。有一天你去一个果园摘梨子,果农告诉你,有一棵树上有一个金子做的梨子,找到就是你的,你该怎么找? 地图如下: S 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 G废话,挨个找呗~ 这就叫做搜索。 在一个区间内找到符合条件的值的过程,就是搜索。(?)最简单的就是穷举,挨个找。因为都可以走,所以从(1,1)到
2015-07-30 16:47:05 1176
原创 步步为营(十四)常用数据结构(7)STL-Queue(队列)priority_queue(优先队列)
与栈相对的就是队列了,二者都是容器适配器一级的数据结构。Queue的默认实现也是通过Deque实现的(这丫的通吃啊),也就最大程度保证了效率和空间的平衡。 Queue是 先进先出(FIFO)的线型表。 Queue只允许在尾端进行数据的插入,在头端进行数据的删除。 话不多说,上图: 队列需要注意的就是他的先进先出特性,这在以后学广度优先搜索时比较方便。操作还是那几种:queue
2015-07-28 16:12:28 913
原创 步步为营(十三)常用数据结构(6)STL-Stack(栈)
在聊Stack之前,要说到一个概念:容器适配器。 之前我们接触了两种容器:顺序容器(也有叫序列容器的)和关联容器。那么已知的数据结构有那么多,我们是不是都需要去一一实现呢? 当然不用,因为那些数据结构大都可以通过现有的数据结构实现,于是便出现了容器适配器。 容器适配器让一种已存在的容器类型采用另一种不同的抽象类型的工作方式实现。 例如,stack适配器可使任何一种顺序容器以栈的方式工作
2015-07-28 15:44:33 930
原创 步步为营(十二)常用数据结构(5)STL-Set(集合)
Set也属于关联容器,而且和Map的实现方法相同,都是红黑树。 简单来说,Set就是key和Value相等的Map。值得注意的是,由于红黑树的自平衡性(额,也就是自动排序的结果),所以不能直接修改节点的值,每次想要修改一个节点的值,就必须删除原来的元素,然后重新插入。Map为什么没提这一点? 因为Map的节点是Key值,应该不会有人会去修改Key值的吧…………同样的,对于结构体来说,我们可以
2015-07-28 11:29:55 824
原创 步步为营(十一)常用数据结构(4)STL-Map(应该是散列表)
Map的直译是图,但是STL里的map容器和图半毛钱关系都没有~Map属于关联容器,而之前讨论的List,Vector,Deque都属于顺序容器。 差别么…… 个人觉得,关联容器是单纯查找用的,顺序容器的功能更注重数据的存储。 Map的存储形式是 < key, value >。 其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个称为该关键字的值。Map内部的实现是红黑
2015-07-28 11:07:29 877
原创 步步为营(十)常用数据结构(3)STL-Deque(双端队列)
和前两个不同,双端队列(double-end queue)更像是一种折衷的产物。可能是人们发现Vector和List的水火不容,于是发明了这么一个集两家所长的东西。 双端队列具有Vector和List的优点,或者说二者的特征点都可以在Deque里实现。我真想说,这是一个凑不要脸的结构……原因如下: 支持随机访问(下标访问,也就是[]操作符)(Vector) 支持在两端进行数据插入
2015-07-28 10:43:04 1305
原创 步步为营(九)常用数据结构(2)STL-Vector(动态数组)
和链表相对的就是数组了,这两种结构是最基本的数据结构类型了。 C++自身实现了一个array容器,但是STL里的动态数组Vector(直译为向量)使用更方便,这里还是讨论下Vector。 Vector是内存连续的,空间按需增长的结构。Vector和List是刚好相反的,Vector在随机存储的操作上非常方便,但是在增加和删除元素时非常麻烦。如果你想删除一个元素,就必须移动后面所有的元素向前一
2015-07-28 10:21:44 850
原创 步步为营(八)常用数据结构(1)STL-List(双端链表)
额,这个真的有必要说么~~ 链表是空间动态分配的,内存不连续,不能随机进行访问和储存的结构。链表的存储方式注定了链表在查找时面临着O(n)的时间复杂度,虽然看起来不算很大,但是这是单次查找的复杂度,如果要进行稍微复杂一点的操作,复杂度便很可能会飙升到O(n^2),这个复杂度真的会死人的……不过链表的优点也很明显,如果程序对随机存储(也可以理解为下标式操作)的效率要求不高,那么使用链表存储数据比
2015-07-28 10:15:00 934
原创 步步为营(七)贪心(6)小结
贪心,递推,动态规划,这三种算法思想都是很难掌握的。因为没有死板的公式和套路的代码,只能通过日常的学习和思考,去不断加深自己对这类题目的敏感度和熟练度,提高自己的思维能力,才能对这类题目游刃有余。 深山三十年,最终习得一身的内功。眼望之处,再无敌手。贪心算法,也就是三大步: 1. 最优解情况的证明 2. 贪心策略的制订 3. 数据的预处理过程。大家如果接触过20+的贪心题目,就会发现大多
2015-07-24 11:17:32 808
原创 步步为营(六)贪心(5)最小区间覆盖问题
关于区间相关贪心算法的讨论,点击这里,有一份详细的资料,还有几个问题没有说到 《浅谈信息学竞赛中的区间问题》 在贪心算法的层面上,我们能够进行解决的区间覆盖,指的就是最小区间覆盖问题。 问题描述为: 给定n个区间和一个范围[a, b],选择尽量少的区间,使得[a, b]能够被完全覆盖。贪心的策略我们可以思考一下: 对于当前区间[a,b]来说,选择的下一个区间的左端点值a
2015-07-24 10:45:29 1890
原创 步步为营(五)贪心(4)部分背包问题
部分背包问题虽说是归于背包问题的一种,而且背包问题大多数是通过动态规划的出的结果,但是贪心算法解部分背包,不管是思想还是操作上来说,都是非常简单的。首先,我们来看一下什么叫做部分背包。 有N个商品,每个商品的重量为WI,价格为:PI,现有一个背包,最多能装M的重量. 其中(0<=I< N,0< wi<.M). 问:怎样装能使包中装入的商品价值最高(对于每个商品可以只装该商品的一部分)
2015-07-23 11:48:47 1201
原创 步步为营(四)贪心(3)区间选点问题
区间选点的问题大致可以描述为: 给定N个区间[a,b],取尽量少的点,使得每个区间内都至少有一个点(不同区间内含的点可以重复)。关于贪心算法的验证过程就不再赘述,现在思考一下贪心策略的制定。 对于区间[a1, b1] 、[a2, b2]、 [a3, b3] 来说, 如果想选择最少的点,那么必须选择每个区间的右端点,示意图如下: 当你每一次都选择区间的最右端,才能保证每一个选的点覆盖的范围都是
2015-07-23 10:25:28 1674
原创 步步为营(三)贪心(2)选择不相交区间
之前基本了解了贪心的基本思想,现在我们来看一下比较经典的几个贪心问题。 这篇文章讨论的是”选择不相交区间“,具体什么意思,我们同样先看一道题。题目来源:NYOJ 14 会场安排问题 时间限制:3000 ms | 内存限制:65535 KB 难度:4(这个
2015-07-20 10:03:04 1072
原创 步步为营(二) 贪心(1)理论初探
等待了一年时间,这个系列的坑终于又开始填了……不说废话,直接开始正题。1.何为贪心? 贪心算法实际上指的是把问题划分成一个一个的子问题,然后针对当前的子问题,求出局部最优解,然后将子问题的最优解合并,最终获得总问题的最优解。 值得注意的是,在对问题求解时,贪心算法总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,它做出的仅是在某种意义上的局部最优解。2.如何判断贪心从上面
2015-07-18 09:04:20 975
原创 搜寻文件夹中某一后缀的文件名,并且输出到文件
#include #include #include #include #include using namespace std;int main(int argc,char *argv[]){ ofstream fout; string str_file = ""; intptr_t hflie = 0; int num = 0; _f
2015-04-13 14:50:57 632
原创 Opencv Mat类
Mat是Opencv转向C++后设计的图像类,替代原来的IpIImage和cvMat。Mat类由两个数据部分组成: (1)矩阵信息头(包含矩阵尺寸,储存方法,储存地址等信息) (2)指向储存所有像素值的矩阵(根据所选储存方法不同,矩阵的维数不同)。Mat的内存是自动分配和释放的。为了减小在函数中传递图像的开销,Mat使用引用计数机制,每个Mat对象拥有自
2015-04-08 11:49:16 932
原创 win7下opencv3.0.0+VS2013配置方法
http://demo.netfoucs.com/u013647382/article/details/42557479本来想自己写一篇的,但是这位博主写得很详细,就转来了。因为VS下的环境配置要是之间接触过的话,配置这个很快的,没有什么特别的地方,不多做赘述。环境变量也可以不配置,看个人情况吧。
2015-04-08 01:03:54 882
转载 C++异常处理
引言异常,让一个函数可以在发现自己无法处理的错误时抛出一个异常,希望它的调用者可以直接或者间接处理这个问题。而传统错误处理技术,检查到一个局部无法处理的问题时:1.终止程序(例如atol,atoi,输入NULL,会产生段错误,导致程序异常退出,如果没有core文件,找问题的人一定会发疯)2.返回一个表示错误的值(很多系统函数都是这样,例如malloc,内存不足,分配失败
2015-04-06 23:37:45 448
转载 快速求正整数次幂
快速求正整数次幂,当然不能直接死乘。举个例子:3 ^ 999 = 3 * 3 * 3 * … * 3直接乘要做998次乘法。但事实上可以这样做,先求出2^k次幂:3 ^ 2 = 3 * 33 ^ 4 = (3 ^ 2) * (3 ^ 2)3 ^ 8 = (3 ^ 4) * (3 ^ 4)3 ^ 16 = (3 ^ 8) * (3 ^ 8)3 ^ 32 = (3 ^ 16
2015-03-15 02:58:39 1294
转载 优先队列priority_queue 使用方法
优先队列(priority_queue) 优先级队列 是不同于先进先出队列的另一种队列。每次从队列中取出的是具有最高优先权的元素。 首先它是一个队列,但是它强调了“优先”二字,所以,已经不能算是一般意义上的队列了,它的“优先”意指取队首元素时,有一定的选择性,即根据元素的属性选择某一项值最优的出队~ 关于priority_queue1,关于STL中的prio
2015-03-11 23:36:04 543
转载 Manacher算法:求解最长回文字符串,时间复杂度为O(N)
回文串定义:“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。回文子串,顾名思义,即字符串中满足回文性质的子串。经常有一些题目围绕回文子串进行讨论,比如POJ3974最长回文,求最长回文子串的长度。朴素算法是依次以每一个字符为中心向两侧进行扩展,显然这个复杂度是O(N^2)的,关于字符串的题目常用的算法有KMP、后缀数组、AC 自动机,这道题目
2015-03-11 22:49:27 523
转载 最长上升子序列LIS算法实现
LIS(Longest Increasing Subsequence)最长上升(不下降)子序列,有两种算法复杂度为O(n*logn)和O(n^2)。在上述算法中,若使用朴素的顺序查找在D1..Dlen查找,由于共有O(n)个元素需要计算,每次计算时的复杂度是O(n),则整个算法的时间复杂度为O(n^2),与原来算法相比没有任何进步。但是由于D的特点(2),在D中查找时,可以使用二分查找高效地完成,
2015-03-10 01:09:33 591
转载 C++ floor函数 截断符点数小数部分
函数原型:1 double floor ( double x );2 float floor ( float x );3 long double floor ( long double x );2、功能:返回一个小于传入参数的最大整数3、参数:x为将来被处理的数4、返回值:返回不大于x的最大整数5、注在C语言中只有double一个原型6、示
2015-03-10 00:58:26 2958
转载 计算几何-多边形的重心
1. 1 累加和求重心设平面上有N 个离散数据点( xi , yi ) ( i = 1, 2, ., n) , 其多边形重心G( . x1, . y1) 为: 这是求多边形最简单直观的方法。可以直接利用离散数据点的x, y坐标就能求图形重心。但是缺陷在于没有对离散数据点所围图形做任何处理和分析,精度不够。1. 2 算法一:在讲该算法时,先要明白下面几个
2015-03-09 16:02:41 953
NYOJ题目 离线版
2015-09-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人