摘要: 前提:一个非降序列 lower_bound()函数使用: 它的参数就是: 1.一个数组元素的地址(或者数组名来表示这个数组的首地址,用来表示这个数组的开头比较的元素的地址,不一定要是首地址,只是用于比较的“首”地址), 2.一个数组元素的地址(对应的这个数组里边任意一个元素的地址,表示这个二分里边的 阅读全文
posted @ 2020-05-18 06:23 2333333333龖 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 这一题其实就是分解质因数,把试管数和每种细胞分解质因数,试管有的质因数细胞也要有,才能在一段时间后装入试管。如果A被B整除,那么B的质因子A全部包括A的n次方,不论n(大于0)有多大,质因子的种类永远等于A的质因子的种类,例:当A等于2,不论是2的多少次方,永远只有2这一种质因子分解质因数: 当还能 阅读全文
posted @ 2020-05-09 22:27 2333333333龖 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 前置知识 二叉搜索树: 显然是一棵二叉树, 每个节点有一个权值val, 对于每个节点k,要么其左子树为空,否则其左子树的所有元素节点权值都小于val[k], 对于其右子树,要求其中权值全部大于val[k], 如果整棵树中有几个节点权值相等,那么将这个元素对应的节点多开一个域sum,表示这个权值的元素 阅读全文
posted @ 2020-05-02 17:52 2333333333龖 阅读(173) 评论(0) 推荐(0) 编辑
摘要: https://www.cnblogs.com/jason2003/p/9676729.html 线段树其实就是一棵二叉树,它将一个数列分成小区域,每个节点分别储存其对应的区间左右端点。 设数组 a[n] ,图中 [ i,j ] 表示每一个二叉树结点对应的区间。容易发现,根节点对应的是整个区间 [ 阅读全文
posted @ 2020-05-01 19:44 2333333333龖 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 先附上我最开始的想法 记忆化搜索 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> using namespace std; int n,m,i,ans; int sum1[55],sum2[55],s[55] 阅读全文
posted @ 2020-04-25 19:24 2333333333龖 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 不多扯题目 直接题解= = 1.递归 由题目可以得知,子树既可以是根节点和叶节点组成,也可以是一个节点,题意中的对称二叉子树是必须由一个根节点一直到树的最底部所组成的树。 这样一来就简单了,我们很容易就能想到用递归的方法 1.枚举根节点,判断其左右两个孩子节点 是否存在 以及是否相等. 若存在并且点 阅读全文
posted @ 2020-04-17 18:38 2333333333龖 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 并查集是一类十分常用的数据类型,它有着十分广泛的应用。在信息竞赛中,它主要执行的操作一般有三种。(1) 合并a,b两个元素所在的集合 Merge(a,b)(2)查找某个元素属于哪个集合 find(k)(3)查询两个元素是否属于同一集合 Query(a,b) 函数模板(1)find int find( 阅读全文
posted @ 2020-04-04 15:57 2333333333龖 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 分治就是从全局变成局部,逐渐缩小问题的规模,更加高效的解决问题的一种算法。应用实例: 贪心算法是指在对问题求解时,总是做出在当前看来是最优的决策。即就是不从全局最优方面考虑,只考虑局部最优情况 它有时可以得到全局的最优解,这取决于策略。当我们试图用贪心法来解决一道题的时候,最好能先证明贪心的正确性, 阅读全文
posted @ 2020-04-04 15:51 2333333333龖 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 分治就是从全局变成局部,逐渐缩小问题的规模,更加高效的解决问题的一种算法。应用实例:(1)快速排序:O(nlogn)步骤:1.找轴值2.序列重新排列,小于轴值的放在前面,轴值放在中间,大于轴值的放在右边.3.两边分别递归即可 inline void quick_sort(int left,int r 阅读全文
posted @ 2020-04-04 15:49 2333333333龖 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 二分法是一种暴力枚举的优化版,它可以使时间复杂度大大减少,从而达到优化的效果。它同时又是一种典型的分治思想的应用。核心思想是把待求解问题分为两部分,每一部分分别求解。解决具有单调性质的题暴力枚举O(N),二分O(log N)、二分代码整数: while(l<r){ mid=(l+r)/2; if(c 阅读全文
posted @ 2020-04-04 15:44 2333333333龖 阅读(142) 评论(0) 推荐(0) 编辑