自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 2019-7-31训练日志

Hash Hash表又称作散列表,一般由Hash函数与链表结构共同实现,主要还是用到链表中的邻接表。Hash的思想与离散化相似,对复杂信息处理时,把这些信息映射到一个容易维护的值域内,有可能会产生冲突,我们需要处理这种情况。 Hash表主要包括两个基本操作: 1,计算原始值经过hash函数映射的值 2,定位到对应链表中依次遍历,比较。 当Hash函数设计较好时,原始信息会被比较均匀地分配...

2019-07-31 23:30:34 82

原创 2019-7-30训练日志

昨天上午补了点题然后一直在整理斐波那契数列的相关知识,这个数列性质的应用经常出,就csdn搜了一波。下午是在刷题,看了会书。 具体关于斐波那契数列的知识如下: f1=1 f2=1 f3=f2+f1=1+1=2 f4=f2+f3=1+2=3 f5=f3+f4=2+3=5 f6=f4+f5=3+5=8 f7=f5+f6=5+8=13 f8=f6+f7=8+13=21 f...

2019-07-31 08:47:09 151

原创 2019-7-29训练日志

链表和邻接表 数组是一种支持随机访问,但不支持在任意位置插入或删除元素的数据结构。 链表支持在任意位置插入或删除,但只能按顺序依次访问其中的元素,我们可以用一个struct表示链表的节点,其中可以储存任意数据,另外用prev和next两个指针指向前后相邻的两个节点,构成一个常见的双向链表结构,再用head和tail代表链表头尾。 用数组模拟链表,下标模拟指针是常见的做法: struct ...

2019-07-30 09:31:30 62

原创 2019-7-28近期训练总结

这一个星期主要学习了程序设计的一些基本算法思想,在任何问题中,都有其涉及的范围,求解就是在这个范围的遍历与映射。递推和递归是遍历状态空间的两种基本形式,枚举与模拟是按照问题的直接表述形式对状态空间进行朴素的遍历,搜索是带有一定的选择性,决策性的遍历,贪心是在每步决策时采取局部最优策略的遍历,动态规划是基于全局考量的分阶段,按维度,无重复的遍历 ,二分倍增以及排序相关的算法会对状态空间实施划分,等价...

2019-07-28 12:50:15 90

原创 2019-7-27训练日志

第一章已经学完了,开始看数据结构了。栈和队列。 栈是一种“后进先出”的线性数据结构,,它只有一个出口,只能操作最顶端元素。 示意图: 我们也可以在C++中用一个数组和一个变量(记录栈顶位置)来实现栈结构。 在stl中也有栈这个容器 头文件: #include <stack> 定义:stack<data_type> stack_name; 队列是一种先进先出...

2019-07-28 08:20:35 151

原创 2019-7-26训练日志

倍增,ST算法,贪心。 倍增的思想是:通过成倍增长的方式,只递推状态空间中在2的整数次幂位置上的值作为代表,当需要其他位置上的值时,我们通过“任意整数可以表示成若干个2的次幂项的和”这一性质,使用之前求出的代表值拼成所需的值。“倍增”与“二进制”划分两个思想互相结合,能降低很多问题的时间空间复杂度。 ST算法,在区间最值问题中,ST算法就是倍增的产物,ST算法在O(NlogN)时间的...

2019-07-27 09:16:15 67

原创 2019-7-25训练日志

排序: 对于排序算法按照时间复杂度分为三类: O(n^2) :选择排序,插入排序,冒泡排序; O(nlogn)堆排序 归并排序,快速排序; 还有一类算法,时间复杂度不仅与n有关,还与数值的大小范围m有关;计数排序,基数排序,桶排序; 在后面的逆序对中,会用到归并排序的思想,分组,用指针移动进行比较。 离散化就是把无穷大集合中的若干个元素映射为有限集合以便于统计的方法。具体的说就是把n...

2019-07-26 09:51:11 61

原创 2019-07-24训练日志

前缀和,差分,二分: 前缀和:对于一个给定的数列A,它的前缀和数列S是能通过递推求出来的;; 而数列A某个下标区间内的数的和,可以表示为前缀和相减的形式:sum(l,r)= =S[r]-S[l-1]; 在二维数组中,也可类似的计算前缀和:S[i][j]= 差分:对于一个给定的数列A,它的差分数列B定义为:B[1]=A{1],B[i[=A[i]-A[i-1];...

2019-07-25 09:27:39 88

原创 2019-07-23日训练日志

递推与递归: 递推:以已知的“问题边界”为起点向“原问题”正向推导的扩展方式是递推; 递归:以“原问题”为起点尝试寻找把状态空间缩小到已知的“问题边界”的路线,再通过该路线反向回溯的遍历方式就是递归。 对于递归来说主要注意3个步骤: (1)缩小问题状态空间的规模,一般在做题中,就是剪枝加遍历,排除不满足解的情况。 (2)尝试求解规模缩小以后的问题。因为规模缩小后的问题是原问题的一个子问题...

2019-07-24 09:25:33 85

原创 2019-07-22训练日志

昨天主要学习了一些基本算法,有位运算,递推与递归。 位运算能够帮助我们理解程序运行中的种种表现,提高程序运行的时空效率,降低编程复杂度。 基本的运算符有:与:and/&;或:or/|;非:not/~;异或:xor/^; 整数型包括无符号整型int和有符号整型unsigned int。有符号整型的最高位是0的话是整数,1的话是负数。 移位运算:1<<n=2^n,n&l...

2019-07-23 09:32:24 94

空空如也

空空如也

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

TA关注的人

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