摘要: 基本概念: 二叉搜索树又被称为二叉排序树,那么它本身也是一棵二叉树,那么满足以下性质的二叉树就是二叉搜索树: 1、若左子树不为空,则左子树上左右节点的值都小于根节点的值 2、若它的右子树不为空,则它的右子树上所有的节点的值都大于根节点的值 3、它的左右子树也要分别是二叉搜索树 例如:输入8 20 3 阅读全文
posted @ 2020-04-02 21:51 sumoier 阅读(300) 评论(0) 推荐(1) 编辑
摘要: 什么是同构树: 给定两颗树T1和T2,如果T1可以通过若干次左右孩子交换变成T2,我们就称两棵树是同构的。 将整个过程拆分来看一下,增加一些二叉树的操作: 首先是二叉树的建立: struct tnode{ char data; int right,left; }; void buildtree(tn 阅读全文
posted @ 2020-04-02 21:33 sumoier 阅读(703) 评论(0) 推荐(1) 编辑
摘要: 现在才发现这个感觉很好用, 一直都想把自己做过的题,总结的东西保存下来, 一直都没实现,导致前面做了很多东西都没有记录下来 现在一个一个来补上好麻烦啊 但是还是要做的得做 可能要补很多了一个一个来吧争取除开自己每天做的争取每天补一个板块的知识 555 加油吧争取把自己的这个过程给记录下来 今天补了一 阅读全文
posted @ 2020-04-02 19:16 sumoier 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 1、合并石子 https://www.cnblogs.com/Renyi-Fan/p/7392649.html(讲得很好)方法其实有很多种的 思路:现将石子的前缀和计算出来,状态为 f[i][j] 表示为合并 i 到 j 的最小值。 f[i][j]=min(f[i][j],f[i][k]+f[k+1 阅读全文
posted @ 2020-04-02 19:02 sumoier 阅读(1242) 评论(0) 推荐(1) 编辑
摘要: 方格取数 Description 设有N×N的方格图,我们在其中的某些方格中填入正整数,而其它的方格中则放入数字0。如下图所示: 某人从图中的左上角A出发,可以向下行走,也可以向右行走,直到到达右下角的B点。在走过的路上,他可以取走方格中的数(取走后的方格中将变为数字0)。 此人从A点到B点共走了两 阅读全文
posted @ 2020-04-02 15:25 sumoier 阅读(460) 评论(0) 推荐(0) 编辑
摘要: 最近一直在做背包问题,就把以前的动态规划要也来总结一下下 1、数字金字塔(类似。摘花生等) 数字金字塔 Description 观察下面的数字金字塔。写一个程序查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以从当前点走到左下方的点也可以到达右下方的点。 在上面的样例中,从13到 阅读全文
posted @ 2020-04-02 13:30 sumoier 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 一、01背包 对物品i只有两种选择:装入或者不装入 空间优化:要从后往前递减顺序遍历,f[j]=max(f[j],f[j-w[i]]+c[i]) 模板: #include <bits/stdc++.h> using namespace std; const int N=2005; int w[N], 阅读全文
posted @ 2020-04-02 12:10 sumoier 阅读(316) 评论(0) 推荐(0) 编辑