
算法学习
文章平均质量分 76
linuxblack125125
男人可以不帅,但一定要经典
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
开开心心学算法--一种排序
时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复;还知道这个长方形的宽和长,编号、长、宽都是整数;现在要求按照一下方式排序(默认排序规则都是从小到大); 1.按照编号从小到大排序 2.对于编号相等的长方形,按照长方形的长排序; 3.如果编号和长都相同,按照长方形的宽原创 2012-08-03 01:01:10 · 1958 阅读 · 1 评论 -
开开心心学算法--ASCII码排序
描述 输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。 输入 第一行输入一个数N,表示有N组测试数据。后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格。 输出 对于每组输入数据,输出一行,字符中间用一个空格分开。 样例输入 3 qwe asd zxc 样例输出 e q w a d s c x z原创 2012-07-31 15:29:41 · 1713 阅读 · 0 评论 -
开开心心学算法--十进制转任意进制
这个不是在线的ACM题,是我自己想的。用到了栈的操作。能将十进制转换成64进制内的任何进制数。程序里面用大小写英文字母加‘#’和‘*’号表示了从10到63的数字。具体见程序。 首先是栈的相关函数实现,文件为:stack.c #include #include #include #define STACK_INIT_SIZE 100 #define STACKINCREMENT 10原创 2012-07-31 16:21:19 · 1004 阅读 · 0 评论 -
开开心心学算法--Binary String Matching
时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 Given two strings A and B, whose alphabet consist only ‘0’ and ‘1’. Your task is only to tell how many times does A appear as a substring of B? For原创 2012-07-31 15:37:27 · 1133 阅读 · 0 评论 -
开开心心学算法--喷水装置(一)
时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个喷水装置的效果都会让以它为中心的半径为实数Ri(0 输入 第一行m表示有m组测试数据 每一组测试数据的第一行有一个整数数n,n表示共有n个喷水装置,随后的一行,有n个实数ri,ri表示该喷水装置能覆原创 2012-07-31 16:40:39 · 1833 阅读 · 1 评论 -
深入学习算法的一点拙见
今天实在是头脑不听使唤了,没力气看书,写代码了。写点总结吧。 都说算法是内功,究竟练到什么程度才算修成了呢? 为什么要学习,强化算法? 首先强调的是,下面的原因均是建立在算法熟练到一定程度后的效果。不熟的话,未见得能达到效果。这些原因很现实。但很多程序员却不知道或不以为然。 比较世俗的方面,顶级软件公司笔试,面试会问到。别说你不想去谷歌,百度,微软,如果真的没想过,我希望你能转载 2012-07-29 22:57:54 · 1616 阅读 · 0 评论 -
括号配对问题--一道ACM在线测试题(补充)
刚才之所以说简直弱爆了。。。是因为那个系统的测试做的实在是不怎么样!大家可以看看下面这个程序,C++的,同样可以通过。但是如果你输入()()(或者[][][的时候,它是不会有输出的。大家可以试试。下面我将代码贴出来: #include using namespace std; #include int main() { char ch[10000],s[5000]; int n,原创 2012-07-28 01:13:54 · 1756 阅读 · 0 评论 -
括号配对问题--一道ACM在线测试题
今天在南阳理工学院的在线ACM测试上做了一道题,简直弱爆了。。。请看原题: 描述 现在,有一行括号序列,请你检查这行括号是否配对。 输入第一行输入一个数N(0输出每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No样例输入 3 [(]) (]) ([[]()]) 样例输出 No No Yes 我的解: #include原创 2012-07-28 01:04:27 · 9862 阅读 · 5 评论 -
《编程之美》读书笔记(一):中国象棋将帅问题
《编程之美》读书笔记(一):中国象棋将帅问题 作者:薛笛 EMail:jxuedi#gmail.com 千呼万唤始出来,在跳票了快一个月之后,虽然明知道书里还有不少错误没改过来(附了一整页的勘误),但是感觉已经不能等下一版了。赶快去书店买回来,吃完饭躺床上舒舒服服地看。大致翻看之后,总体感觉是书中的内容没有“脱离群众”,很多都是我们平时生活、工作中经常能遇到的。题目转载 2012-08-11 00:52:49 · 774 阅读 · 0 评论 -
开开心心学算法--深度优先搜索(DFS)之滑雪问题
DFS是图的遍历的一种算法,是搜索算法的一种。拿图的深度优先搜索来说,深度优先搜索是从图中某个顶点v出发,访问此顶点,然后依次从v的未被访问的邻居节点出发,深度优先遍历图。直到图中所有和v有路径相通的顶点都被访问到;若此时图中尚有顶点未被访问,则另选图中一个未曾被访问的顶点作起点,重复上述过程,直到图中所有顶点都被访问到为止。显然,这是一个递归的过程,为了在遍历过程中便于区分顶点是否已被访问,需要原创 2012-08-05 23:41:30 · 2787 阅读 · 0 评论 -
经典算法研究系列:三、动态规划算法解微软一道面试题[第56题]
作者 July 二零一零年十二月三十一日 本文参考:微软面试100题系列V0.1版第19、56题、算法导论、维基百科。 ok,咱们先来了解下什么是动态规划算法。 动态规划一般也只能应用于有最优子结构的问题。最优子结构的意思是局部最优解能决定全局最优解 (对有些问题这个要求并不能完全满足,故有时需要引入一定的近似)。 简单地说,问题能够分解成子问题来解决。 动态规划算法分转载 2012-08-09 15:20:15 · 2744 阅读 · 0 评论 -
开开心心学算法--快速排序之会场安排问题
快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)。 步骤为: 从数列中挑出一个元素,称为 "基准"(pivot),重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。递原创 2012-08-08 00:37:30 · 1765 阅读 · 0 评论 -
开开心心学算法--街区最短路径问题的二种解法
时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 一个街区有很多住户,街区的街道只能为东西、南北两种方向。 住户只可以沿着街道行走。 各个街道之间的间隔相等。 用(x,y)来表示住户坐在的街区。 例如(4,20),表示用户在东西方向第4个街道,南北方向第20个街道。 现在要建一个邮局,使得各个住户到邮局的距离之和最少。 求原创 2012-08-02 01:00:47 · 5954 阅读 · 1 评论