![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
ACM
打ACM打的
bigstrength
记录学习的算法,以及好点的题
展开
-
Educational Codeforces Round 132 (Rated for Div. 2) D. Rorororobot
Educational Codeforces Round 132 (Rated for Div. 2) D. Rorororobot原创 2022-07-22 14:48:37 · 596 阅读 · 0 评论 -
2021-08-11
数组来模拟堆简单介绍下堆:堆(heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆是一棵完全二叉树,堆中某个结点的值总是不大于或不小于其父结点的值.这里研究节点的值总是大于其父节点的值这种情况,即所以对应的数组是单调递增的.我们用h数组来存放堆, cnt代表堆的大小堆里面有两个重要的操作,一个是down(u)另一个是up(u) 这两个步能完成堆的建立和堆中其他的操作.注意:down(u)和up(u)是通过下标来交换对应的元素,所以这里的u是数组下标原创 2021-08-11 19:13:32 · 78 阅读 · 0 评论 -
二叉树性质
每个结点至多有两个结点,并且二叉树的子树有左右之分,次序不能颠倒。原创 2023-07-06 08:51:44 · 322 阅读 · 0 评论 -
2021-08-03
单调队列求滑动窗口中最大值和最小值题意:给你一个长长度为n , 1 <= n <= 1e6 的数组a,和一个长度为k , 1 <= k <= n的滑动窗口,问你:滑动窗口从左往右滑,窗口中的最大值和最小值是多少。第一行输出每个滑动窗口的最大值,第二行输出每个滑动窗口的最小值。暴力做法:对于每一个滑动窗口进行遍历,这样最坏的时间复杂度是当滑动窗口的长度为n + 1/ 2,时间复杂度是O(N ^2),肯定超时。利用单调队列优化:找最小值:滑动窗口从左到右,如果右边的数B比左边原创 2021-08-03 12:11:45 · 120 阅读 · 0 评论 -
2021-07-30
给定一个长度为 N 的整数数列,输出每个数左边第一个比它小的数,如果不存在则输出 −1。原创 2021-07-30 19:03:01 · 61 阅读 · 0 评论 -
2021-08-10
链表一.数组模拟单链表我们用head代表头节点的下标(我觉得可以理解成头节点下一个的指向),用ne[x]代表x 指向的下一个位置,用e[x]代表x节点处的值,用idx代表当前已经用到了哪个点。链表的初始化:void init(){ head = -1; idx = 0;}链表的头节点插入:在头节点后面插入值为x的节点void add_to_head(int x){ e[idx] = x; ne[idx] = head; head = idx;原创 2021-08-10 23:10:52 · 59 阅读 · 0 评论 -
codeforces 线段树题单
线段树原创 2022-07-27 22:41:27 · 791 阅读 · 0 评论