摘要: 一,原理与引例: 这个在matlab里面其实是有一个标准库来处理相应的数据的。如果题目要求最大值的话,只要在Ax前面加上一个负号就好了。 这个稍微解释一下,目标函数不是线性函数,所以这个地方用到了运筹学的知识。上面的u和v其实只是存在关系。对于现在的我来说只要记住就好了。这样就把之前的非线性问题转化 阅读全文
posted @ 2022-03-15 21:56 prize 阅读(1475) 评论(0) 推荐(0) 编辑
摘要: 首先要有第一个思维,就是树的结点都是集合,边都是关系。那么对应起来就是根结点是全集,子节点是子集。不管我最终搜索落在什么结点上,都要从根节点来寻找。 树的深度和高度是一样的,从上向下数是深度,从下向上数是高度。树的深度和高度是相等的,但是结点的高度和深度不一定相等。节点的度是有几个节点与这个节点相连 阅读全文
posted @ 2022-03-13 20:39 prize 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 单调栈是用来维护最近的大于和小于关系 其实单调栈就是一个把头给封死的一个单调队列。单调队列能从两边出,但是单调栈只能从头出。 首先在看到问题的时候,不能陷入到局部思考,首先先想原问题的性质。这个最大矩形有什么限制呢?高肯定是所覆盖中的最矮的木板。最优解肯定是以某一块木板最为高度,现在枚举每一块木板, 阅读全文
posted @ 2022-03-07 22:08 prize 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 首先,单调队列的作用是维护区间最大值 比如说现在我们看上面这个图吧,现在把这些数,每三个化成一个窗口。在每个窗口后面蓝色部分,从左到右写出窗口中有可能成为区间最大值的元素。然后你会发现,所有的蓝色部分的第一个数字好像就是相应的区间最大值,而且你会发现,每一个蓝色部分好像都是递减的。其实只要一个数后面 阅读全文
posted @ 2022-03-05 20:39 prize 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 首先是队列的: #include <stdio.h> #include <stdlib.h> #include <time.h> typedef struct Queue { int* data; int head, tail; int length; } Queue; Queue* init(in 阅读全文
posted @ 2022-03-03 20:34 prize 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 用一题来作为引例吧。重点不是怎么解,是要思考是怎么想到用栈来解决这个问题的。 首先拿到这个问题怎么思考呢?记住,先将难的问题分解成简单的问题来思考。那么这题要怎么简化呢?我能不能把这题只简化成一种括号呢?后面让我们看看这些括号来分析什么样的括号是合法的: 从这些例子中我们要分析出几个问题: 1,在第 阅读全文
posted @ 2022-03-02 09:52 prize 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 这个map其实就有点像python的字典的感觉。 后面是实现代码: #include <iostream> #include <map> #include <cstring> using namespace std; struct StudentInfo { int id; char name[20 阅读全文
posted @ 2022-03-01 15:03 prize 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 往这个容器中放东西,这个容器内部会自动保持有序。 后面来引入一个实例: 发现没,把数组中的元素插入到multiset容器中,使用一个迭代器去遍历这个容器的话,输出的数就自动排好序了。 这个迭代器其实就是上面概论里面说的是一个双向迭代器,是不能随机访问元素的。 这个上界和下届的搜索返回的都是一个迭代器 阅读全文
posted @ 2022-03-01 10:15 prize 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 用法一: 用法二: 用法二的实例: 终点看最后一个binary_search按照这个规则是找个位数相同,98和8的个位数相同,所以说这个会显示找到了。 阅读全文
posted @ 2022-02-28 20:56 prize 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 用法一: 用法2: 也不要管这个是从哪来的,当你要从大到小进行排序的时候就吧这个给写上就是了。 用法3: 就是在struct中自定义了一个规则。 后面是一个具体使用sort的程序: sort对结构数组进行排序: 阅读全文
posted @ 2022-02-28 20:41 prize 阅读(22) 评论(0) 推荐(0) 编辑