
数据结构与算法
文章平均质量分 69
痕迹天涯119
人一我百,人十我万!追逐青春的梦想,怀着自信的心,永不放弃
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
九章算法系列(一)
问题:实现一个Memcpy函数函数简介:c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。本题主要考虑两点:1)内存重叠与否2)重叠内存的copy方式无重叠的内存copy:void *mymemcpy(void *dst,const void *src,size_t num){原创 2016-03-13 18:07:57 · 12331 阅读 · 5 评论 -
C中qsort函数的六类详细使用方法
sort()函数是C++中的排序函数其头文件为:#include头文件; qsort()是C中的排序函数,其头文件为:#include 1、qsort()----六类qsort排序方法 qsort函数很好用,但有时不太会用比如按结构体一级排序、二级排序、字符串排序等。 函数原型: void qsort(void *base, size_t nelem, size_t width, in原创 2014-07-14 16:17:20 · 5005 阅读 · 3 评论 -
cantor的数表
【题目】题目描述如下数列,前5项分别是1/1,1/2,2/1,3/1,2/2……。输入n,输出第n项。1/1 1/2 1/3 1/4 1/52/1 2/2 2/3 2/43/1 3/2 3/34/1 4/25/1样例输入314712345样例输出2/12/41/459/99原创 2014-07-14 19:43:42 · 1764 阅读 · 0 评论 -
汽车信息管理系统
本人大一花了两个星期闲时做的汽车信息管理系统,可能会有纰漏,高手勿喷源代码贴上分享:原创 2014-07-14 20:48:39 · 4149 阅读 · 3 评论 -
NYOJ1036 非洲小孩
非洲小孩时间限制:1000 ms | 内存限制:65535 KB难度:2描述家住非洲的小孩,都很黑。为什么呢?第一,他们地处热带,太阳辐射严重。第二,他们不经常洗澡。(常年缺水,怎么洗澡。)现在,在一个非洲部落里,他们只有一个地方洗澡,并且,洗澡时间很短,瞬间有木有!!(这也是没有的办法,缺水啊!!)每个小孩有一个时间段能够洗澡。并且,他们是可以原创 2014-07-17 16:54:35 · 1018 阅读 · 0 评论 -
NYOJ 752 又见回文串
又见回文串时间限制:1000 ms | 内存限制:65535 KB难度:2描述 回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。今天,PIAOYI又遇见一个关于字符串的题:两人玩一个游戏,给一个字符串,两人轮流删除字符串中的任意一个字符,当某人删除字符后,若该字符串可以经过重新整理后是一个回文串,则他获胜。当两人足够聪明均不出原创 2014-07-18 11:39:34 · 1069 阅读 · 0 评论 -
二十世纪最伟大的10大算法
译者:July 二零一一年一月十日------------------------------------参考文献:The Best of the 20th Century: Editors Name Top 10 Algorithms。By Barry A. Cipra。地址:http://www.uta.edu/faculty/rcli/TopTen/topte转载 2014-07-18 20:27:53 · 1418 阅读 · 0 评论 -
NYOJ 971 爬行的蚂蚁
爬行的蚂蚁时间限制:1000 ms | 内存限制:65535 KB难度:2描述有N只蚂蚁以每秒1cm的速度在长为Lcm的竿子上爬行。当蚂蚁爬到竿子的端点时就会掉落。由于竿子太细,两只蚂蚁相遇时,它们不能交错通过,只能各自反向爬回去。对于每只蚂蚁,我们知道它距离杆子左端的距离Xi,但不知道它当前的朝向。请计算所有蚂蚁都从竿子上掉落所需的最短时间和最长时间。原创 2014-07-19 20:53:53 · 3099 阅读 · 1 评论 -
NYOJ 930 回文数猜想
回文数猜想时间限制:2000 ms | 内存限制:65535 KB难度:2描述一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数。任取一个正整数,如果不是回文数,将该数与他的倒序数相加,若其和不是回文数,则重复上述步骤,一直到获得回文数为止。例如:68变成154(68+86),再变成605(154+451),最后变原创 2014-07-21 18:04:30 · 907 阅读 · 0 评论 -
NYOJ 824 Greedy Mouse
#include#include#define MAX 1001int Comp(const void* a,const void* b);struct Mouse{ int w; int f; float p;};int main(){ Mouse M[MAX]; int S,N,n,s; float sum; while(scanf("%d%d",&S,&N)!=-原创 2014-07-17 11:48:28 · 977 阅读 · 0 评论 -
单链表的建立、插入、删除、遍历
查找获得链表第i个数据的算法思路:声明一个结点p指向链表第一个结点,初始化j从1开始;当j若到链表末尾p为空,则说明第i个元素不存在;否则查找成功,返回结点p的数据。插入单链表第i个数据插入结点的算法思路:声明一结点p指向链表头结点,初始化j从1开始;当j若到链表末尾p为空,则说明第i个元素不存在;否则查找成功,在系统中生成一个空原创 2014-07-16 17:24:06 · 5616 阅读 · 0 评论 -
NYOJ71独木舟上的旅行
独木舟上的旅行时间限制:3000 ms | 内存限制:65535 KB难度:2描述进行一次独木舟的旅行活动,独木舟可以在港口租到,并且之间没有区别。一条独木舟最多只能乘坐两个人,且乘客的总重量不能超过独木舟的最大承载量。我们要尽量减少这次活动中的花销,所以要找出可以安置所有旅客的最少的独木舟条数。现在请写一个程序,读入独木舟的最大承载量、旅客数目和每位旅客的重量。根据给出的原创 2014-07-15 17:30:51 · 936 阅读 · 0 评论 -
NYOJ 1058 部分和问题
部分和问题时间限制:1000 ms | 内存限制:65535 KB难度:2描述给定整数a1、a2、.......an,判断是否可以从中选出若干数,使它们的和恰好为K。输入首先,n和k,n表示数的个数,k表示数的和。接着一行n个数。(1输出如果和恰好可以为k,输出“YES”,并按输入顺序依次输出是由哪几个数的和组成,否则“NO”样例输入原创 2014-07-22 17:34:10 · 876 阅读 · 0 评论 -
int long longlong float double类型数据的范围
unsigned int 0~4294967295 int 2147483648~2147483647 unsigned long 0~4294967295long 2147483648~2147483647long long的最大值:9223372036854775807long long的最小值:-9223372036854775808unsigne原创 2014-07-22 21:42:03 · 6433 阅读 · 0 评论 -
C、C++数据类型所占字节数
C标准中并没有具体给出规定那个基本类型应该是多少字节数,具体与机器、OS、编译器有关,比如同样是在32bits的操作系统系,VC++的编译器下int类型为占4个字节;而tuborC下则是2个字节。所以int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI/ISO制订的):sizeof(short int)sizeof(int)原创 2014-07-23 17:40:01 · 10893 阅读 · 0 评论 -
NYOJ24 素数距离问题
素数距离问题时间限制:3000 ms | 内存限制:65535 KB难度:2描述现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度。如果左右有等距离长度素数,则输出左侧的值及相应距离。如果输入的整数本身就是素数,则输出该素数本身,距离输出0输入第一行给出测试数据组数N(0接下来的N行每行有一个整数M(0输出原创 2014-07-24 21:53:22 · 695 阅读 · 0 评论 -
NYOJ139 我排第几个
我排第几个时间限制:1000 ms | 内存限制:65535 KB难度:3描述现在有"abcdefghijkl”12个字符,将其所有的排列中按字典序排列,给出任意一种排列,说出这个排列在所有的排列中是第几小的?输入第一行有一个整数n(0随后有n行,每行是一个排列;输出输出一个整数m,占一行,m表示排列是第几位;样例输入3ab原创 2014-07-25 15:25:46 · 1304 阅读 · 0 评论 -
NYOJ40 公约数和公倍数
公约数和公倍数时间限制:1000 ms | 内存限制:65535 KB难度:1描述小明被一个问题给难住了,现在需要你帮帮忙。问题是:给出两个正整数,求出它们的最大公约数和最小公倍数。输入第一行输入一个整数n(0随后的n行输入两个整数i,j(0输出输出每组测试数据的最大公约数和最小公倍数样例输入36 612 1133 22原创 2014-07-25 14:31:22 · 880 阅读 · 0 评论 -
NYOj143 第几是谁
第几是谁?时间限制:3000 ms | 内存限制:65535 KB难度:3描述现在有"abcdefghijkl”12个字符,将其按字典序排列,如果给出任意一种排列,我们能说出这个排列在所有的排列中是第几小的。但是现在我们给出它是第几小,需要你求出它所代表的序列.输入第一行有一个整数n(0随后有n行,每行是一个整数m,它代表着序列的第几小;输出原创 2014-07-25 16:09:23 · 992 阅读 · 0 评论 -
POJ 2386 LakeCounting
Lake CountingTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 19975 Accepted: 10048DescriptionDue to recent rains, water has pooled in various places i原创 2014-07-26 21:41:44 · 793 阅读 · 0 评论 -
约瑟夫问题(经典问题)
约瑟夫问题(有时也称为约瑟夫斯置换,是一个出现在计算机科学和数学中的问题。在计算机编程的算法中,类似问题又称为约瑟夫环。又称“丢手绢问题”.)问题来源:据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报原创 2014-07-27 21:07:27 · 1574 阅读 · 0 评论 -
二叉树
dingy二叉树(Binary Tree)是n(n>=0)个结点的有限集合,该集合或者为空集(空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成。原创 2014-07-29 10:04:32 · 1515 阅读 · 0 评论 -
NYOJ 658 字符串移动
#include#includeint main(){ char s[100]; int n,i,l,j; while(scanf("%s%d",s,&n)==2) { l=strlen(s); i=l-(n%l); for(j=i;j<i+l;j++) printf("%c",s[j%l]); printf("\n"); } return 0;}原创 2014-07-29 16:24:16 · 919 阅读 · 0 评论 -
NYOJ 7 街区最短路径问题
街区最短路径问题时间限制:3000 ms | 内存限制:65535 KB难度:4描述一个街区有很多住户,街区的街道只能为东西、南北两种方向。住户只可以沿着街道行走。各个街道之间的间隔相等。用(x,y)来表示住户坐在的街区。例如(4,20),表示用户在东西方向第4个街道,南北方向第20个街道。现在要建一个邮局,使得各个住户到原创 2014-07-29 16:38:41 · 758 阅读 · 0 评论 -
Java获取程序运行时间
两种时间分类,毫秒/纳秒转载 2014-07-30 14:45:58 · 1222 阅读 · 0 评论 -
杨辉三角
杨辉三角时间限制:1000 ms | 内存限制:65535 KB难度:1描述还记得中学时候学过的杨辉三角吗?具体的定义这里不再描述,你可以参考以下的图形:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1输入输入数据包含多个测试实例,每个测试实例的输入只包含一个正整数n(1输出对应于每一个输入,请原创 2014-07-30 21:26:59 · 1042 阅读 · 0 评论 -
NYOJ 102 次方求模
快速幂取模算法的时间复杂度为O(logb),能在几乎所有的程序设计(竞赛)过程中通过,是目前最常用的算法之一,值得推广学习!!!首先要了解这样一个公式:a^b mod c=(a mod c)^b mod c(详细证明请看数论或者离散数学)了解了这个公式,我们可以先让a关于c取余,这样可以大大减少a的大小, 于是不用思考的进行了改进,代码如下: .......原创 2014-07-31 21:12:03 · 1014 阅读 · 0 评论 -
C/C++中Static的作用详述
C/C++中Static的作用详述 在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.转载 2014-08-01 09:45:13 · 655 阅读 · 0 评论 -
NYOJ 46最小乘法次数
最少乘法次数时间限制:1000 ms | 内存限制:65535 KB难度:3描述给你一个非零整数,让你求这个数的n次方,每次相乘的结果可以在后面使用,求至少需要多少次乘。如24:2*2=22(第一次乘),22*22=24(第二次乘),所以最少共2次; 输入第一行m表示有m(1每一组测试数据有一整数n(0输出输出每组测试数据所需次数s;原创 2014-08-04 21:50:50 · 1863 阅读 · 0 评论 -
大数相乘
求解两个大数相乘的结果,字符串解决。代码如下:原创 2014-08-06 09:03:19 · 783 阅读 · 0 评论 -
NYOJ 45 棋盘覆盖
棋盘覆盖时间限制:3000 ms | 内存限制:65535 KB难度:3描述在一个2k×2k(1k×2k未被覆盖过的方格,求需要类似图2方格总的个数s。如k=1时,s=1;k=2时,s=5 图1原创 2014-08-06 09:19:02 · 917 阅读 · 0 评论 -
scanf与gets读取字符串的区别
对于编程初学者很多人对gets和scanf都没做过深入的了解,本文为大家详细说明gets和scanf的区别gets 1、函数:gets(字符指针) 2、头文件:stdio.h(c中),c++不需包含此头文件 3、原型:char*gets(char*buffer); 4、功能:从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在bu原创 2014-08-06 11:03:06 · 1851 阅读 · 0 评论 -
NYOJ 56 阶乘因式分解
阶乘因式分解(一)时间限制:3000 ms | 内存限制:65535 KB难度:2描述给定两个数m,n,其中m是一个素数。将n(0输入第一行是一个整数s(0随后的s行, 每行有两个整数n,m。输出输出m的个数。样例输入2100 516 2样例输出2415代码如下: #i原创 2014-08-06 20:50:48 · 950 阅读 · 0 评论 -
筛法求素数
筛法求素数,寻找素数最经典快速的方法!!!用筛法求素数的基本思想是:把从1开始的、某一范围内的正整数从小到大顺序排列, 1不是素数,首先把它筛掉。剩下的数中选择最小的数是素数,然后去掉它的倍数。依次类推,直到筛子为空时结束。如有:1 2 3 4 5 6 7 8 9 1011 12 13 14 15 16 17 18 19 2021 22 23 24 25 26 27 28 29原创 2014-08-06 21:47:50 · 1510 阅读 · 0 评论 -
LCS 最长公共子序列(DP经典问题)
最长公共子序列问题以及背包问题都是DP(动态规划)算法的经典题目,值得深度挖掘以致了解DP算法思想。问题如下:最长公共子序列时间限制:3000 ms | 内存限制:65535 KB难度:3描述咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(L原创 2014-08-08 15:48:00 · 4668 阅读 · 2 评论 -
hdu 1238 Substrings
SubstringsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 7261 Accepted Submission(s): 3277Problem DescriptionYou are given原创 2014-08-11 09:56:43 · 988 阅读 · 0 评论 -
魔术师发牌和拉丁方阵
本文利用经典的魔术师发牌问题与拉丁法阵分别讲解了循环链表与单向链表的使用,作为算法中的经典,对于链表的学习和理解都有着很大的帮助,不妨一看。魔术师发牌问题问题描述:魔术师利用一副牌中的13张黑牌,预先将他们排好后叠放在一起,牌面朝下。对观众说:“我不看牌,只数数就可以猜到每张牌是什么,我大声数数,你们听,不信?现场演示。”魔术师将最上面的那张牌数为1,把他翻原创 2014-08-10 10:34:41 · 2067 阅读 · 0 评论 -
POJ 1411 Calling Extraterrestrial Intelligence Again
Calling Extraterrestrial Intelligence AgainTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 10716 Accepted: 4210DescriptionA message from humans to ext原创 2014-08-11 15:15:45 · 1314 阅读 · 0 评论 -
HDU 1010 Tempter of the Bone(DFS+奇偶性剪枝)
Tempter of the BoneTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 70665 Accepted Submission(s): 19487Problem DescriptionThe原创 2014-08-12 08:53:31 · 1154 阅读 · 0 评论 -
poj 1979 Red and Black(DFS||BFS)
Red and BlackTime Limit: 1000MS Memory Limit: 30000KTotal Submissions: 22389 Accepted: 12090DescriptionThere is a rectangular room, covered with square tiles. E原创 2014-08-12 15:13:35 · 953 阅读 · 0 评论