自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我要上天~

没事儿就来逛一逛

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

原创 线性表的顺序表示和实现

线性表的顺序表示指的是用一组地址连续的存储单元一次存储线性表的数据元素。假设线性表的每个元素需要占用个存储单元,并以所占的第一个但愿的存储地址作为数据元素的存储位置。则线性表中第个数据元素的存储位置和第个数据元素的存储位置之间满足下列关系:一般来说,线性表的第个数据元素的存储位置为:线性表的这种机内表示称作线性表的顺序存储结构或顺序映像,通常,称这种存储结构的线性表

2016-09-15 17:06:11 2220

原创 poj2084 Game of Connections

DescriptionThis is a small but ancient game. You are supposed to write down the numbers 1, 2, 3, . . . , 2n - 1, 2n consecutively in clockwise order on the ground to form a circle, and then, to draw

2016-08-28 19:08:08 1543

原创 数据结构的定义和研究的内容

定义:按照某种逻辑关系组织起来的一批数据,用一定的存储方式存储在计算机的存储器中,并在这些数据上定义一个运算的集合,就成为一个数据结构。数据结构研究的内容如下:(1)数据的逻辑结构:按照某种逻辑关系将数据组织好,即逻辑结构。(2)数据的存储结构:将数据及数据之间的关系存储到存储区域中,即存储结构。(3)数据的运算:在这些数据上定义一个基本运算的集合。 一、数据的逻辑结构

2016-08-28 18:21:52 8698 2

原创 Lambda表达式

在ISO C++11标准中引入了lambda表达式。用于创建并定义匿名的函数对象。以简化编程工作。Lambda表达式的语法如下:[函数对象参数](参数列表)->返回值类型{函数体};1.函数对象参数:可以是表达式之前出现过的变量,代表当前Lambda表达式会用到的变量。如果不写这个变量的话,则在Lambda表达式中就无法访问这个变量。如果Lambda需要多个变量的话,则每个变量之间

2016-08-20 11:19:44 300

原创 STL库中的算法的使用

STL算法部分主要是由三个头文件承担:、、1.:意思是算法,只要想使用STL库中的算法函数就得包含该头文件。2.:该头文件包含了一系列用于计算数值序列的算法,由于其具有一定的灵活性,它也能够适用于其它非数值序列的计算3.:定义了一些模板,可以用来声明函数对象。 STL库中的算法大致可以分为四类:1.非可变序列算法:算法不修改容器元素的值或顺序。如:for_each,先行查找

2016-08-19 21:54:25 620

原创 C++仿函数

仿函数,顾名思义,就是“仿造函数”的意思,它并不是函数,但是却有着类似于函数的行为。那么,它到底是什么?首先要说的是:仿函数是泛型编程强大威力和纯粹抽象概念的又一个例证。我们在C++最早接触泛型编程的恐怕是在学模板(template)的时候,它具有可以任意指定类型的特点。仿函数也具有这个特点,这也充分体现出来仿函数灵活性的特点。 一、仿函数的概念我们在编程的时候,有时候会发现这样一

2016-08-17 21:33:01 1253

原创 树、二叉树

树树形结构是一种非常重要的非线性数据结构。树形结构是一种结点之间有分支,且具有层次关系的一种结构一、树的定义:在计算机科学中,树是指由n个结点(n>=0)组成的又穷集合D以及D上的关系集合R所构成的结构,通常用T表示。在此基础上,树还需要满足一下几个条件:1.当n=0时,该结点集合为空。此时,树被称为空树。2.在任意一个非空树中,有且仅有一个根节点。3.当n>1的时候,除去

2016-08-17 20:33:05 685

原创 深度优先搜索与广度优先搜索

在图的遍历中,有两种重要的遍历图的方式,即:深度优先搜索与广度优先搜索。一、深度优先搜索。深度优先搜索的基本思路是:按照某种条件一个劲儿的往下搜索,一旦遇到不符合条件的情况或者是走到尽头了就退回到上一步,然后选择另外一个路径继续搜索……如此循环往复,直到把所有符合条件的点遍历完毕为止。简单来说,大致符合下面这张图片所示的遍历步骤(步骤6之后的步骤没有画)那具体实现是怎么实现

2016-08-13 22:44:14 618

原创 面向对象方法编一个简易的控制台版贪吃蛇(三)

之前关于贪吃蛇的内容参见:面向对象方法编一个简易的控制台版贪吃蛇(一)点击打开链接    和     面向对象方法编一个简易的控制台版贪吃蛇(二)点击打开链接现在,我们开始写碰撞。一说起增加什么功能,我首先想到的还是写一个新的方法。但是这个方法写在哪个类里面似乎永远都是一门学问,你可以写在一个现有的类里面,也可以再创建一个类。即使对于这样一款小游戏也需要考虑,因为如果写的不科学的话,可

2016-08-10 21:28:55 1787

原创 hdu1022 Train Problem I(栈的应用)

Problem DescriptionAs the new term comes, the Ignatius Train Station is very busy nowadays. A lot of student want to get back to school by train(because the trains in the Ignatius Train Station is

2016-08-08 17:46:54 610

原创 hdu 1222 Wolf and Rabbit(扩展欧几里德)

There is a hill with n holes around. The holes are signed from 0 to n-1.A rabbit must hide in one of the holes. A wolf searches the rabbit in anticlockwise order. The first hole he get into

2016-08-08 11:38:14 500

原创 (扩展)欧几里德得算法

一、先说一说欧几里得算法欧几里德算法又称为辗转相除法,用于求两个整数a、b的最大公约数。算法描述:假设a = k*b + r,其中a,b,k,r都为整数,则a和b的最大公约数与b,r的最大公约数相等,即:gcd(a, b) = gcd(b, a%b)证明:设 a = k*b + r, 则  r = a mod b;设 d是a,b的一个公约数,那么肯定有 d|a , d|

2016-08-08 11:29:43 337

原创 hdu 2674 N!Again(简单数学)

Problem DescriptionWhereIsHeroFrom:             Zty, what are you doing ?Zty:                                     I want to calculate N!......WhereIsHeroFrom:             So easy! How big N is

2016-08-08 09:45:25 358

原创 hdu1997 汉诺塔VII(深度优先搜索)

Problem Descriptionn个盘子的汉诺塔问题的最少移动次数是2^n-1,即在移动过程中会产生2^n个系列。由于发生错移产生的系列就增加了,这种错误是放错了柱子,并不会把大盘放到小盘上,即各柱子从下往上的大小仍保持如下关系 : n=m+p+qa1>a2>...>amb1>b2>...>bpc1>c2>...>cqai是A柱上的盘的盘号系列,bi是B柱上的盘的

2016-08-06 17:48:37 1498

转载 图的深度优先搜索/Depth-first search/C++

出处:http://www.cnblogs.com/yanlingyin/  点击打开链接图是一种常见的数据结构,深度优先和广度优先搜索都是常用的算法,这篇博文先介绍深度优先搜索。和往常一样的,我会用朴实的语言来介绍它,所以只要认真看一定能理解。开始会先介绍下图的表示方法,如果已经掌握了大可跳过。图的表示要表示一个图G(V,E)有两种常见的表示方法,邻接矩阵和邻接表。这

2016-08-06 11:51:15 545

原创 hdu1013 Digital Roots

Problem DescriptionThe digital root of a positive integer is found by summing the digits of the integer. If the resulting value is a single digit then that digit is the digital root. If the result

2016-08-06 11:00:36 280

原创 面向对象方法编一个简易的控制台版贪吃蛇(二)

在《 面向对象方法编一个简易的控制台版贪吃蛇(一)》中,我们已经让食物、地图蛇等可以在控制台上显示出来。下面我们应该考虑的问题是:如何通过键盘操作让蛇动起来。只有先把这个问题解决了,你在以后实现诸如吃到食物、碰到墙壁等功能的时候才可以直接拿过来测试。首先,需要明确的一个问题是。这个操控蛇的方法应该写在哪里?由于我们是对蛇进行操作,因此,我们可以将这个方法写在蛇类(Snake)里面。那么,如何捕

2016-08-05 21:13:07 1012

原创 hdu2050折线分割平面&hdu1290献给杭电五十周年校庆的礼物

hdu2050Problem Description我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目。比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示。 Input输入数据的第一行是一个整数C,表示测试实例的个数,然后是C 行数据,每行包含一个整数n(0

2016-08-03 21:02:35 467

原创 面向对象方法编一个简易的控制台版贪吃蛇(一)

今天,我们开始用面向对象的方法编写一个简易的控制台版的贪吃蛇。本人能力有限,若有纰漏还请及时指出,多多包涵。在编写程序之前,我们得有一个较为清晰的思路,即:如何才能编出这个游戏。我想,可以遵循以下几条来明确以下思路。1.想思路:首先你得知道贪吃蛇是怎么个玩法。毕竟,若游戏规则都不知道的话,想编出来也不切合实际。2.找出技术点(1)通过什么技术能将地图、蛇什么的显示出来(2)蛇需

2016-08-03 14:26:15 4625

转载 string 和 char *两者的区别是什么 ?什么时候用string好? 什么时候用 char * 合适?什么时候同时都能用?

转载自:http://www.cnblogs.com/GODYCA/archive/2013/01/08/2851923.htmlA:区别主要是:string的内存管理是由系统处理,除非系统内存池用完,不然不会出现这种内存问题。char *的内存管理由用户自己处理,很容易出现内存不足的问题。当我们要存一个串,但是不知道其他需要多少内存时, 用string来处理就最好不过了。

2016-08-01 23:09:58 3826

原创 自己写一个简易的string类型

C语言中没有string类型,于是,在使用C语言的时候,总会用char*类型来替代string类型,但是char*和string类型还是有一定的不同的。最大的差异就是在对字符串的操作上。显然:比起char* ,string对于字符串的操作更加的简便,比如说:1.两个string类的变量str1和str2,我只需要写str1+str2即可完成两个字符串的连接,但是char*就不可以。要用char

2016-08-01 21:53:43 988

原创 hdu1443 Joseph

Problem DescriptionThe Joseph\\\\\\\'s problem is notoriously known. For those who are not familiar with the original problem: from among n people, numbered 1, 2, . . ., n, standing in circle ever

2016-07-31 15:17:03 309

原创 hdu1568 Fibonacci

Problem Description2007年到来了。经过2006年一年的修炼,数学神童zouyu终于把0到100000000的Fibonacci数列(f[0]=0,f[1]=1;f[i] = f[i-1]+f[i-2](i>=2))的值全部给背了下来。接下来,CodeStar决定要考考他,于是每问他一个数字,他就要把答案说出来,不过有的数字太长了。所以规定超过4位的只要说出前4

2016-07-27 22:17:31 486

原创 排序算法讲解(三)

五、希尔排序希尔排序我们需要借助变量gapk来实现(gap是变量名,k是下脚标),这个排序算法主要是通过比较相距gapk间隔的元素值的大小来进行排序,并且在一组数据当中,所有相距gapk的元素都被排序。希尔排序的思路是:确定一个元素间隔gap,将参加排序的元素从第一个元素开始按照这个间隔依次分成多个子序列,分别将所有位置的相隔gap的元素看成一个子序列。例如对于一组数据{2,9,3,7,1

2016-07-25 22:00:41 245

原创 hdu1717小数化分数2

Problem DescriptionRay 在数学课上听老师说,任何小数都能表示成分数的形式,他开始了化了起来,很快他就完成了,但他又想到一个问题,如何把一个循环小数化成分数呢?请你写一个程序不但可以将普通小数化成最简分数,也可以把循环小数化成最简分数。 Input第一行是一个整数N,表示有多少组数据。每组数据只有一个纯小数,也就是整数部分为0。小数的

2016-07-25 14:26:16 445

原创 排序算法讲解(二)

三、快速排序快速排序是目前在实际工作当中使用频率最高、效率也最好的一种排序算法。它的主要思想是:有待排序数组S={d1,d2,d3,……,dn},从中挑选一个元素dx最为一个基准,将剩余的元素中小于或者等于dx的元素全都移到dx的前面,将大于dx的元素全部移到dx的后面。这样S课分为两个子集S1和S2,其中S1中的元素全部小于等于dx,S2中的元素全部大于dx。此时一趟排序完成。再遵循以上的思

2016-07-23 11:02:43 439

原创 hdu2026 首字母变大写

Problem Description输入一个英文句子,将每个单词的第一个字母改成大写字母。 Input输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行。 Output请输出按照要求改写后的英文句子。 Sample Inputi like acmi want to get a

2016-07-22 20:26:23 378

原创 排序算法讲解(一)

排序算法无论是在平时生活中还是在ACM-ICPC中都比较常用,也很重要。毕竟,在真正的数据处理过程中如果提前对数据进行有效而良好的排序,那么数据处理起来将会变得比较简洁。这里给大家介绍几个常用的排序算法。一、插入排序:插入排序的过程有一些类似于打扑克。相信绝大多数打过扑克的朋友都有这样的习惯,每抓一张牌,就要结合手中已有的牌进行分门别类并且按照一定的顺序进行排列。这样,在真正开始打牌的时候

2016-07-22 11:37:26 496

原创 hdu 2000

ASCII码排序Problem Description输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。 Input输入数据有多组,每组占一行,有三个字符组成,之间无空格。 Output对于每组输入数据,输出一行,字符中间用一个空格分开。 Sample Inputqweasdzxc

2016-07-21 20:04:51 730

空空如也

空空如也

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

TA关注的人

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