- 博客(8)
- 收藏
- 关注
原创 笔记_常见优化技巧3
二叉堆的中心规则其实很朴素,就是拆东墙补西墙——它要满足自己设立的两条铁律,而在使用过程中,无论是添加元素还是删除元素都一定会破坏这两条规则,二叉堆所做的,就是通过一系列操作,去缓解或消除这些破坏
2024-02-19 21:50:57 1807
原创 笔记_常见优化技巧2
特别的,在进行二维离散化数组操作时,除了把两个维度分开拿开进行两次一维的重整,而后再合并之外,还可以直接把两个维度放在一起重整(相当于是二维数组的一维化,不过比这在操作上简单明了不少,但是这样重整出来的图空间利用率有所降低,但是的但是这个”降低“可忽略)数据离散化,指的是数据范围很大,但所用到的数据很少,或是并不在意数据本身的具体值,而只在意数据间的相对大小,故而将数据通过映射集中在一个较小的范围;这一步是为了把离散化的数据重新集合,我们不需要关注它们在图上的具体方位,我们只用关注这些离散数据的。
2024-02-18 19:04:02 1513 1
原创 笔记_图基础
在二叉树中,所有节点间的关系都是相同的,而图中的节点关系不同,在节点间的通路上,两节点间单、双向通路都可能存在,故在存储的时候需要表示方向。于是就得到了pic[N][x]这样的存储方式,N表示节点名,而长度为x的pic[N]里面,存储的便是节点N能够达到的那x个节点名。故图的问题,主要是需要把具体的问题抽象在图中,然后以某种方式遍历完这个图,或是求图的最长链、或是找从一个点起始所能到达的某些特殊点,从而完成解题。,因为数组每个维度的长度是固定的,以最多的节点去初始化数组会导致有大量的空间被浪费。
2024-01-28 23:01:53 908
原创 笔记_二叉树1
二叉树每个节点可以分出两个孩子节点,这其实可以看作是一个“0”和“1”,即某个事件真假的判断,而子节点可以记录对于判断的回答,存储某个事件的一项属性。数组的下标作为父节点的内容(通常元素是字母或者数字,但不论是哪一个,都可以放进下标中作为一个唯一的“NEXT”地址),数组的内容为左右子节点进行父子关系的确认(节点名),对于4,在数据中遇到多个相等的数时,由于上述对于二叉树分类功能的解释,很明显,同类的“事件”应该进行合并,即可用一个变量来记录这个“事件”出现的次数。但是,再观察一下便能发现一个关键点,
2024-01-17 21:43:12 864
原创 笔记_状态转移方程
方程的作用是通过已知的状态进行延伸而后得到答案,答案即使状态双手的延伸;那么第一步,就是需要找出所有非延伸的、不辨自明的、所有延伸状态基础的初始状态
2024-01-16 16:39:43 2217 2
原创 笔记_树状数组
它们由二进制特殊进位规则影响的,每次相加都是等效于最末尾的1翻倍,而末尾翻倍又等效于二进制的进位,(例:0110→1000;0100→1000;0111→1000)这就是二进制独能完成的关键所在。就此,奇数都以2的次方为单位进行成长(每次成长数值上加了2的k次方)
2024-01-15 14:20:15 835
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人