所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。排序算法在很多领域得到相当地重视,尤其是在大量数据的处理方面。一个优秀的算法可以节省大量的资源。在各个领域中考虑到数据的各种限制和规范,要得到一个符合实际的优秀算法, ...
分类:
编程语言 时间:
2017-10-05 17:17:38
阅读次数:
179
谨以此笔记记录jjw高三党四个月学习NOI的历程..如转载请标记出处 Floyd算法: 默认是业界最短路最简单的写法,并且只有五行。时间复杂度为O(N3),空间复杂度为O(N2)。 简单来说就是通过另一个点个点来收缩一个点到一个点的距离,如果f[i][j]>f[i][k]+f[k][j]的话就把f[ ...
分类:
其他好文 时间:
2017-10-03 22:23:48
阅读次数:
161
扩展KMP可以快速求出T与S每个后缀的LCP,时间复杂度和空间复杂度都比后缀数组要优良很多。 ...
分类:
其他好文 时间:
2017-10-02 17:16:14
阅读次数:
136
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2023 题意: 有n个家族,共m只蚂蚁(n <= 1000, m <= 100000)。 每个家族有cnt[i]只蚂蚁,并且同一家族中的蚂蚁无差别。 从窝里爬出来x只蚂蚁的方案数为f(x)。 ...
分类:
其他好文 时间:
2017-10-01 20:36:12
阅读次数:
217
栈还有一个重要应用是在程序设计中实现递归。递归是计算机 科学和数学中一种解决问题的及其重要的方法。在数据结构中,可以用它来设计简单。易于理解的算法,特别是在一些具有递归定义的结构上设计算法。 递归的概念 一个直接或间接地调用自己的函数,称作递归函数。递归是程序设计中一个强有力的方法。 递归函数和运行 ...
分类:
其他好文 时间:
2017-10-01 18:34:36
阅读次数:
141
跳表算法:http://blog.jobbole.com/111731/ 基数算法:http://blog.csdn.net/lemon_tree12138/article/details/51695211 ...
分类:
编程语言 时间:
2017-09-30 17:49:31
阅读次数:
170
一: 编程基础 不管是C还是C++,不管是Java还是PHP,想成为一名合格的程序员,基本的数据结构和算法基础还是要有的。下面几篇文章从思想到实现,为你梳理出常用的数据结构和经典算法。 1-1 常用数据结构 数组、链表、堆、栈、队列、Hash表、二叉树等 1-2 算法思想 算法时间复杂度和空间复杂度 ...
分类:
编程语言 时间:
2017-09-29 16:25:23
阅读次数:
351
题目描述: 思路1: 利用动态规划。由于空间复杂度的限制,直接在triangle数组上进行修改,即把triangle数组当作dp数组。当j == 0时(即每一行的第一个元素),triangle[i][j] += triangle[i - 1][j];当j == col - 1时(即每一行的最后一个元 ...
分类:
其他好文 时间:
2017-09-28 15:33:37
阅读次数:
145
题目:洛谷P1850、UOJ#262、BZOJ4720、Vijos P2005。 题目大意:有n个时间段,第i个时间段只能在教室$c_i$上课,另一个上这门课的教室在$d_i$。现在你最多可以进行m次申请,对于第i个时间段的申请如果成功,那么就能在$d_i$教室上课,但成功率为$p_i$。且教室与教 ...
分类:
其他好文 时间:
2017-09-27 21:00:40
阅读次数:
147
给定一个无序整型数组arr,找到数组中未出现的最小正整数。要求时间复杂度为O(N),空间复杂度为常数级。 例如: arr=[33,33,33,33] 返回1 arr=[34,56,45,12] 返回1 arr=[-1,2,3,4] 返回1 arr=[1,2,3,4] 返回5 。。。 随便什么都行 原 ...
分类:
编程语言 时间:
2017-09-27 20:40:13
阅读次数:
170