自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

IT小晓鸟的专栏

雄关漫道真如铁,而今迈步从头越

  • 博客(41)
  • 收藏
  • 关注

原创 LeetCode: Reverse Linked List II

常规链表翻转的改版,注意记录翻转部分的头结点start及其前面的结点preStart、尾结点tail及其后面的结点postTail即可。在内部的结点翻转完毕(方法同常规链表翻转)后,将preStart->next = tail,start -> next = postTail,即可。代码如下:/** * Definition for singly-linked list. * struct Li

2015-06-05 11:59:19 447

原创 LeetCode:Reverse Words in a String

闲来无事刷leetcode,随便挑了一道翻转字符串的题,其实这道题之前在九度上做过,剑指offer里也有讲,但是我还是花了很久才AC。这次是用纯C写的,觉得用纯C处理字符串才锻炼真本事。 遇到这样的题,要习惯性地问几个问题: 1.字符串前后是否空格,有的话怎么处理,删除还是跟着一起旋转或者保持不变 2.单词之间的空格是否只有一个,如果不是,应该只保留一个还是跟着一起旋转 3.空格之

2015-06-04 21:16:06 526

原创 C++ primer 读书笔记(9)

函数的声明在函数声明里值得注意的一点是

2014-05-20 20:58:02 562

原创 C++ primer 读书笔记(8)

数组作为参数数组

2014-05-19 21:51:38 532

原创 C++ Primer 读书笔记(7)

函数函数的定义you

2014-05-15 20:59:53 508

原创 C++ primer 读书笔记(6)

switch语句相对于for if while语句,switch语句

2014-05-14 20:08:27 439

原创 C++ primer 读书笔记(5)

sizeof操作符sizeof操作符返回的是一个size_t类型的值,表示

2014-05-10 17:54:06 536

原创 C++ primer 读书笔记(4)

动态数组由于每个程序有自己的z

2014-05-07 20:38:41 480

原创 C++ primer 读书笔记(3)

指针指针类似于迭代器,有++操作和

2014-05-05 21:29:08 464

原创 OpenCV 学习笔记(四)

今天学习了直方图均衡化(histogram equalization)的方法,

2014-05-04 16:40:49 627

原创 C++ primer 读书笔记(2)

Vector 类模板关于vector类模板,有以下几个知识点值得注意

2014-05-03 11:38:06 484

原创 OpenCV 学习笔记(三)

图像的金字塔是储存图像的一种数据结构,

2014-05-02 20:20:45 856

原创 C++ primer读书笔记(1)

写在前面的话:

2014-05-02 00:17:31 642

原创 OpenCV学习笔记(二)

今天学习了OpenCV中数据类型和sj

2014-04-13 21:36:28 1245

原创 OpenCV学习笔记(一)

昨天在VS2013上配置好了OpenCV,今天k

2014-04-12 19:42:05 717

原创 OpenCV的配置

折腾了一下午,终于在win7上的VS2013shang

2014-04-11 17:59:52 507

原创 hdu动态规划集锦

发现一篇博文只写一题有点浪费空间,而且不利于分类和查找,所以把题目分类写在一篇博文里比较好~To The Maxhttp://acm.hdu.edu.cn/showproblem.php?pid=1081最大子矩阵问题,其实就是二维的最大子串和问题,要转化为我们熟悉的典型dp问题,就应该将二维转化为一维:预处理矩阵,原矩阵a[i][j]表示第i行第j列的元素,预处理后的矩阵

2014-03-28 10:48:54 617

原创 hdu1080解题报告

后考研刷题时代正式开始,之前练dp意犹未尽,所以先拿dp题开刀,而且找了一道跟我原专业相关的题,基因序列匹配~http://acm.hdu.edu.cn/showproblem.php?pid=1080当年学生物信息学在书上看到了DNA序列匹配的动态规划算法,现在终于实现了它~其实就是最长公共子序列LCS的变形题,ac代码如下:#include #include #define

2014-03-27 23:57:55 613

原创 九度1160解题报告

http://ac.jobdu.com/problem.php?pid=1160一眼一看就知道是dp,但是苦于找不到状态转移。网上看到了递推关系,其实很简单:对于m个苹果,n个盘子的摆法,可以分为有空盘和无空盘两类,有空盘类,就是在m,n-1的所有摆法中加入一个空盘,而无空盘类,就是先拿出n个苹果每个盘各摆一个,在分配剩下的苹果。当然,要注意m#include int dp(int

2014-03-15 16:32:44 621

原创 昨晚接到的电话面试

昨晚接到一位老师的电话面试,这是我第一个计算机方面的面试,总的来说,是比较失败的。我事先跟老师说明过我是零基础跨专业考生,但是老师还是还不留情地问了我很多专业问题,大概有六道题,如下:1.如何将一个字符串反转,空间复杂度为O(1),时间复杂度为O(n)。这个很容易,前后交换就好了。2.如何将一个句子反转,只反转单词顺序,单词内部不变,复杂度要求同上。这个我当时没答出来,在网上搜了搜

2014-03-15 09:13:24 1615 1

原创 继续动态规划--安排问题

九度1499:项目安排http://ac.jobdu.com/problem.php?pid=1499九度1463:招聘会http://ac.jobdu.com/problem.php?pid=1463都是时间安排问题,dp数组下标可以表示时间也可以表示项目数,具体方法可以学习博客http://blog.csdn.net/wdy_yx/article/details/9833897,总结的

2014-03-14 14:30:08 751

原创 动态规划中的“分两份”问题

九度中1358:陈博的平均主义http://ac.jobdu.com/problem.php?pid=1358    1420:Jobdu MM分水果http://ac.jobdu.com/problem.php?pid=1420    1462:两船载物问题http://ac.jobdu.com/problem.php?pid=1462都是我称之为“分两份”的问题,由于要分的两份的总

2014-03-13 22:08:12 569

原创 九度1552 动态规划

http://ac.jobdu.com/problem.php?pid=1552题目一看就是可以用dp的,但是对我来说找状态还是最困难的一件事。参考了别人的代码,才知道如果找合适的状态,并根据我自己的理解,定义了如下状态函数和状态转移方程:f[i][0]表示从左数第i个位置上是男生的合法排列数,f[i][1]表示从左数第i个位置上是女生的合法排列数,由此可知其该女生左边一定是女生。然而仅仅

2014-03-11 21:01:39 456

原创 九度1084解题报告

http://ac.jobdu.com/problem.php?pid=1084 整数拆分的题。根据这几天的做清华真题的情况,可以看出,清华超爱出数学类的题目,考察学生的数学基础和找规律的能力。这道题,乍一看是要找个什么公式或者规律来解决,其实仅仅用dp就可以解决,也就是说,要找出拆分种类的递推规律。本题主要有两条规律,即要分奇偶讨论。当要拆分的数为奇数时,其拆分种类与上一个偶数相

2014-03-05 20:41:15 576

原创 九度1081解题报告

http://ac.jobdu.com/problem.php?pid=1081递归算法显然最直观,可是复杂度太高一遇大数就超时。所以这里是用矩阵二分乘的方法,具体思路可参见《数学知识积累》。代码如下:#include #define MAX 1000000#define MOD 10000typedef struct matrix{ int a[2][2]; void se

2014-03-05 16:31:14 719

原创 九度1085解题报告(机试出这种题我死定了)

http://ac.jobdu.com/problem.php?pid=1085我自己的方法是构造bigint数据类型,然后无脑循环乘求幂,然后再转换k进制,递归求解。这种做法的时间复杂度就不用说了,数据稍微一大一定超时。真正有效的做法代码很简单,却需要很强的数学知识和严格证明,自知达不到这个水平,果断引来大神的博客http://blog.sina.com.cn/s/blog_8619a258

2014-03-04 22:17:18 999

原创 数学知识积累

快速求幂算法参见了别人的博客http://blog.sina.com.cn/s/blog_3f2fa9610100soxb.html,了解到了快速求幂的一种方法,比简单的循环相乘要大大减少乘法次数,自己学习后写的c++代码如下bigint power(bigint x, int n){ bigint ret; ret.set(1); while (n!=0) { if (n&

2014-03-04 21:34:09 825

原创 九度1086解题报告

http://ac.jobdu.com/problem.php?pid=1086典型的动态规划题,当然也可以用图的最短路径方法,但是对我来时dp实现起来容易一些。在这道题中,有两点值得注意,一是两站之间的距离和票价都可以达到10^9,故计算过程中可能出现比int范围大的数,因此需要用long long类型来存储数据;二是我自己思维不周密,只考虑到了起点站比终点站编号小这种情况,而忽略了反过来的

2014-03-04 12:25:02 658

原创 九度1482解题报告

http://ac.jobdu.com/problem.php?pid=1482看到这种题,第一反应就是BFS。可是一开始为剪枝的问题犯愁,最终使用map实现标记已判定的串,其实有点大材小用,只是用到了map.find()的功能,想到其用的是红黑树实现,找起来效率较高,当然别人也有用hash实现的,效率更高,我只是懒得改了。接着就开始为记录树深度犯愁,记得学数据结构的时候,层次遍历是专门修改节

2014-03-03 21:19:50 739

原创 九度1491解题报告

http://ac.jobdu.com/problem.php?pid=1491举个例子来阐明解题的基本思路。例如,n=4321,我们对其各个数位进行分解,4321=4000+300+20+1,然后从低位到高位一次进行分析。个位1,只能含一个1,而十位20又可分为1~10和11~20,个位数字有两次循环,而每次循环会出现一个1和一个2,十位10~19又含有十个1,20含有一个2。百位300,低

2014-03-03 19:27:55 751

原创 九度1140解题报告

http://ac.jobdu.com/problem.php?pid=1140八皇后问题早有耳闻,今日终得一见。其实是典型的回溯算法问题,思路较简单,即挨个下棋子,以判断下一个棋子的位置。然而我这道题做了很久,主要纠结在判断下一个棋子的问题上,我用mark二维数组标记当前哪些位置可以下,哪些位置不能下,以期下一个棋子判断时只需判断自己的mark是真或假,但是这种做法的最大问题在于回溯的时候,

2014-03-01 23:32:49 678

原创 九度1172解题报告

http://ac.jobdu.com/problem.php?pid=1172这道题原来做过可是一点印象都没有,竟然还是能想到用priority_queue来做,看来之前的练习还是有效果。其实今年考研408的算法题与这道题类似,但我当时并不知道这个结论:哈夫曼树所有叶节点的权重之和等于所有非叶结点的值的和,所以当时费了大量的时间做那道题,以至于组成原理的两道大题几乎完全没做,想想就心痛。不过

2014-03-01 20:16:58 782

原创 九度1347解题报告

http://ac.jobdu.com/problem.php?pid=1347孤岛连通问题的实质就是求图的最小生成树问题,若非连通图就输出no。这里使用的是Kruskal算法,将所有边排序后,依次判断是否能让不连通的两定点连通,若可以,则并入该边,把该边的代价算入总代价。最后输出从代价,即最小代价,如不连通,则为no,判断连通用到了并查集。代码如下#include #include

2014-03-01 19:48:47 611

原创 九度1209解题报告

http://ac.jobdu.com/problem.php?pid=1209这是一道典型的动态规划0-1背包问题而且是求恰好等于某值的最优解。做法就是依次加入一张邮票,计算恰好等于M的邮票数,若恰好等于M有多个解,要选择最小的解(这也是我第一次WA没有考虑的情况,dp[m]不为零时要先进行比较,取最小值)。代码如下:#include using namespace std;int

2014-03-01 19:22:43 561

原创 九度1139解题报告

最小子矩阵问题http://ac.jobdu.com/problem.php?pid=1139,是求最优解的一类题,看到题目就想到两种做法,一个是dp,一个是搜索遍历的方法。虽然深搜很多时候并不是用来解决最优解问题的,但是dp的做法,我暂时没有想到该怎么做,于是就先用DFS,代码如下:#include using namespace std;#define INF -999999999

2014-03-01 13:34:37 669

原创 九度1137解题报告

大神们说没有更简单的方法,于是还是用模拟加法。题目如下http://ac.jobdu.com/problem.php?pid=1137 计算机里的浮点数加法,是先对阶,相加,然后规格化,类似地,在模拟的时候,我们也要对阶,即将输入的数分成小数部分和整数部分,然后相加,将结果输出。我将输入当做字符串处理,先超出两个数的小数点的位置,然后将小数部分对齐,即在较短的小数部分后面补零,然后相加

2014-02-28 13:30:21 725

原创 九度1019解题报告

关于计算器的题目http://ac.jobdu.com/problem.php?pid=1019,该题要编写的计算器比一般的计算器简单,因为不含括号,运算优先级就两种,先算乘除法就好,这是受到了fripSide同学的启发,不需要算术符号栈,只需要数字栈,遇加减号就将下一个数字入栈(遇减号将数字反号入栈),遇乘除号,就将栈顶的数字取出运算后再入栈。当处理完整个计算式时,将栈中的所有数取出相加,既得结

2014-02-28 11:06:48 595

原创 九度1080解题报告

明明是AC过一次的题,第二次来做却AC不了了,自己也没想通错在哪。题目如下http://ac.jobdu.com/problem.php?pid=1080进制转换问题,基本思路是把m进制数先转换成10进制数,在将10进制数转换成n进制数。转换成10进制,即每个位上的数值乘以对应的位权然后全部加起来,再转换成n进制,就是不断modn再除以n。当然,既然有大数,要构造bigint数据结构,

2014-02-25 22:59:23 639 2

原创 九度1184解题报告

这是一个二叉树的问题,题目如下http://ac.jobdu.com/problem.php?pid=1184事实上考的就是二叉树的数据结构以及先序和中序遍历。一般来说,仅仅由先序遍历序列无法得到中序序列,然而,本题特殊的地方在于先序遍历序列中给出了遍历中遇到的空指针,这样就很容易根据序列构造二叉树:依次访问先序序列,遇到#就返回空指针,遇到非#字符就构造一个对应的节点,然后按照先左后

2014-02-25 21:02:52 705

原创 求出入栈操作种类(动态规划算法)

昨天在九度上参加王道研究生机试练习赛,结果惨不忍睹,四道做出两道,而且最后一道来不及提交了。今天特来研究昨天难住我的题,就从第二题出入栈开始吧,题目如下:题目描述:给定一个初始为空的栈,和n个操作组成的操作序列,每个操作只可能是出栈或者入栈。要求在操作序列的执行过程中不会出现非法的操作,即不会在空栈时执行出栈操作,同时保证当操作序列完成后,栈恰好为一个空栈。求符合条件的

2014-02-24 16:19:21 1582

空空如也

空空如也

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

TA关注的人

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