摘要: https://www.acwing.com/problem/content/1226/ 首先是暴力做法,O(N^2),对于1e4勉强可以过 #include<iostream> #include<algorithm> using namespace std; const int N = 10010 阅读全文
posted @ 2022-10-25 21:48 风乐 阅读(23) 评论(0) 推荐(0)
摘要: dfs利用的是栈,bfs利用的是队列 如同y总所说的,不需要理解如何用队列实现一个bfs而是跟着y总,告诉我们怎么做,然后我们自己判断一下这种是不是bfs如图:取出的顺序和加入的顺序实际上都是bfs的顺序 一般的bfs框架形式如图: 由于bfs的层次遍历原理,它会优先遍历距离最短的点,因此相比dfs 阅读全文
posted @ 2022-10-23 22:57 风乐 阅读(31) 评论(0) 推荐(0)
摘要: https://www.acwing.com/problem/content/description/1240/首先是暴力做法,可以先循环id,再循环时间,在相同id的情况下,,枚举每个d时间段内点赞数是否大于等于k,但是这种方式不一定可以优化可以先循环时间,再循环id,枚举整个时间范围,即枚举每个 阅读全文
posted @ 2022-10-22 15:57 风乐 阅读(28) 评论(0) 推荐(0)
摘要: 对于练习题2.10所示的交换函数咋一看是这个道理,利用^符号达到交换的目的,实际上由练习题2.11可以知道,它隐含了地假设了*x与*y不指向同一位置我们知道 对于任意a,a^a=0,对于2.10这个函数来说,*x与*y指向同一位置就明显的无法达到交换的目的,反而将值置0了而下面的填空很简单,^符号的 阅读全文
posted @ 2022-10-19 10:56 风乐 阅读(75) 评论(0) 推荐(0)
摘要: 利用刚学的线段树写一道模板题https://www.acwing.com/problem/content/1272/ 这里不需要更新修改,但是要求的却是最大值因而pushup时,也是取max,build与模板一样查询的query,首先需要定义一个最小整数,可以用climits库中的INT_MIN,也 阅读全文
posted @ 2022-10-18 16:22 风乐 阅读(19) 评论(0) 推荐(0)
摘要: 如图所示,线段树维护的是一个struct,一个区间和,对于一个序列,他会不断地分开序列,并且在每个结点存在当前结点的区间和,直到分为1个数对于如何奇偶分段,使用mid=R+L >> 1再下取整 而它的操作和树状数组有点类似:支持单点修改(即只改信息需要变化的结点) 如图,假设将原序列中的5改为8,则 阅读全文
posted @ 2022-10-18 15:41 风乐 阅读(99) 评论(0) 推荐(0)
摘要: 树状数组应用的模板题,写此篇题解前我需要引用一下此位大佬的:https://www.acwing.com/solution/content/39139/大佬的题解很好,但最醍醐灌顶的是大佬的总结:根据题目特性,确定初步解题思路,优先使用暴力,再去考虑优化对于刷题,我一直没有什么较好的内化、学习思路, 阅读全文
posted @ 2022-10-17 23:06 风乐 阅读(45) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2022-10-15 14:17 风乐 阅读(30) 评论(0) 推荐(0)
摘要: hadoop中map分治执行流程: 阅读全文
posted @ 2022-10-15 14:08 风乐 阅读(27) 评论(0) 推荐(0)
摘要: 核心应用:快速(logn)计算前缀和(本质上是快速给某个位置加上一个数)求前缀和可以是任意区间,如求L~R的区间前缀和,只需要用S[R]-S[L-1],通过简单的减法运算即可知区间和本质上的功能:它只支持单点修改和区间查询coding上:有三个核心,求lowbit,更新,以及求和,具体的原理能够代入 阅读全文
posted @ 2022-10-14 17:36 风乐 阅读(26) 评论(0) 推荐(0)