随笔分类 -  学科竞赛--算法学习

摘要:《在树上找到每一个节点的各个子树的节点个数》 实现的时间复杂度O(n),n为节点个数 原题链接:https://codeforces.com/gym/103736/problem/D 以这张图为例:在3节点上其子树的节点个数分别为1 1 2; 算法实现: 首先设计一个dfs函数:int dfs(in 阅读全文
posted @ 2022-10-04 10:28 次林梦叶 阅读(36) 评论(0) 推荐(0)
摘要:《不能使用最小生成树的情况》 在没有说不能产生回路时: 这个情况是不能使用最小生成树算法的,因为边可以是负的,如果再加上一条边,这条边是负的,正好还可以减少权重 《Kruskal算法的大用》 用kruskal算法就像用一个进度条求最小生成树一样,即如果在开始时,最小生成树已经完成了一部分,可以用 k 阅读全文
posted @ 2022-09-04 11:13 次林梦叶 阅读(32) 评论(0) 推荐(0)
摘要:《需求引出》 《情况一:》 在一般的dp问题中,我们的当前项都是可以由前一项推出的, 但是在一些情况下我们要用到前前项的情况,这个时候可以将这个情况当做一个状态表示出来,进行转移 其中0表示:f[i][0]:在第i家店铺,不偷时的最大值 其中1表示:f[i][1]:在第i家店铺,偷时的最大值 转载博 阅读全文
posted @ 2022-09-03 20:46 次林梦叶 阅读(184) 评论(0) 推荐(0)
摘要:《定义》 对于原数列:a1 a2 a3.....ai aj........an-1 an 这个数列的差分为ca[j]=aj-ai 这个数列的前缀和为he[j]=aj+ai+..+a2+a1 我们可以惊奇的发现 差分的前缀和==原数列 前缀和的差分==原数列 利用这个性质: 差分还有一个惊人的特性: 阅读全文
posted @ 2022-08-25 18:29 次林梦叶 阅读(43) 评论(0) 推荐(0)
摘要:本博客主要是对前辈们的内容我认为好的部分摘取过来了 《入门》 LCA用轻重链剖分解决: 好博客:https://www.cnblogs.com/ivanovcraft/p/9019090.html https://www.luogu.com.cn/blog/by-random/solution-p3 阅读全文
posted @ 2022-08-20 12:03 次林梦叶 阅读(30) 评论(0) 推荐(0)
摘要:《标准线段树》 普通的线段树,其区间一般都是一个序列的数的个数,但还是要根据不同题目来判断 注意:tr[]空间是N*4,N为最大范围 《单点修改,区间查询》 原题:https://www.acwing.com/problem/content/1277/ 像这道题,N最大为2*1e5,我们可以事先建立 阅读全文
posted @ 2022-08-15 23:53 次林梦叶 阅读(78) 评论(0) 推荐(0)
摘要:《种类并查集》 对于不能一个并查集不够用了,还需要另一个并查集,但是不能开两个数组作为两个并查集,因为两个并查集之间不能有明确的区分 以样例说明: 贪心思路: 很容易便能想到,我们要使怒气值大的一对人尽量不在同一间监狱里。也就是说,我们要优先考虑怒气值最大的两个人,然后是次大,以此类推。这一想法很容 阅读全文
posted @ 2022-08-14 17:49 次林梦叶 阅读(27) 评论(0) 推荐(0)
摘要:《标准二分查找》 这一类二分的特点是: 2.没有重复元素(如果有重复元素对结果没有影响的话也可以用) 3.单纯的是查找出这一区间存在的确定的值 比如:在数据范围为1~100的有序数组中查找出数50 1 class BinarySearch { 2 public int search(int[] nu 阅读全文
posted @ 2022-08-13 21:05 次林梦叶 阅读(34) 评论(0) 推荐(0)
摘要:多年后重新回来总结一下倍增LCA的初始化,倍增数组等 首先我们需要初始化的是deep数组 memset(deep,0x3f,sizeof(deep)) 初始化这个数组的目的是为了可以不用st[]数组,来判断是否看过某些点 这里设倍增数组为h[N][25] 初始化 deep[root]=0,h[roo 阅读全文
posted @ 2022-08-08 23:24 次林梦叶 阅读(82) 评论(0) 推荐(0)
摘要:本博客大部分是我对这位大佬的文章的个人理解:https://blog.csdn.net/weixin_45697774/article/details/105289810 《倍增》 《RMQ问题》 对于这道题: (这个f数组被称为ST表) 1.首先定义一个数组 f[N][logN+1],这个数组f[ 阅读全文
posted @ 2022-08-08 21:19 次林梦叶 阅读(47) 评论(0) 推荐(0)
摘要:《区间选点》 即一个点尽量在更多的区间上,但我们不妨从另一个方面想:在一个区间上的点,始终不能够与另一个区间有关系的情况是什么? 1 #include <iostream> 2 #include <cstring> 3 #include <algorithm> 4 using namespace s 阅读全文
posted @ 2022-08-01 22:50 次林梦叶 阅读(33) 评论(0) 推荐(0)
摘要:所谓离线的意思是指:先读取全部的输入,经过算法的一系列操作,最后在按照读入的顺序输出答案 相对的,在线的意思是:读取一行输入,输出一行对应的答案 《分块》 由于莫队的核心思想是分块,所以先说一下分块这个思想: 1 #include <iostream> 2 #include <algorithm> 阅读全文
posted @ 2022-07-30 23:24 次林梦叶 阅读(45) 评论(0) 推荐(0)
摘要:《最初始的01背包问题》 让我们用暴力搜索试一试: int dfs(int i,int j){} 这个函数的作用是:返回在前i个物品中选,体积不超过j的能得到的最大价值; 1 int dfs(int i,int j) 2 { 3 int res; 4 if (i==0)res=0; 5 if (j< 阅读全文
posted @ 2022-07-28 18:27 次林梦叶 阅读(45) 评论(0) 推荐(0)
摘要:首先两者的头文件都在#include<stdio.h>中 《sscanf》 sscanf函数 #include <stdio.h>int sscanf(const char *str, const char *format, …); str:待解析的字符串format:字符串格式描述,解析字符串的格 阅读全文
posted @ 2022-07-17 18:43 次林梦叶 阅读(65) 评论(0) 推荐(0)
摘要:《dfs的连通块模型》 这种题目大多是既可以用bfs也可以用dfs来解决的,其实在图的内部进行搜索遍历,对于dfs来说 这种模型不用恢复现场(即回溯) 《dfs的状态转移模型》 这种题目一般是一次变换之后,以整个图的状态为单位进行转换,这时就要恢复现场、 《dfs之搜索顺序》 这种题目即要找到一种搜 阅读全文
posted @ 2022-07-11 23:15 次林梦叶 阅读(54) 评论(0) 推荐(0)
摘要:《flood fill算法》 1 1097. 池塘计数 2 农夫约翰有一片 N∗M 的矩形土地。 3 4 最近,由于降雨的原因,部分土地被水淹没了。 5 6 现在用一个字符矩阵来表示他的土地。 7 8 每个单元格内,如果包含雨水,则用”W”表示,如果不含雨水,则用”.”表示。 9 10 现在,约翰想 阅读全文
posted @ 2022-07-04 15:21 次林梦叶 阅读(126) 评论(0) 推荐(0)
摘要:《问题一:通过边权的转化自动建立起图的结构》 1 920. 最优乘车 2 3 H 城是一个旅游胜地,每年都有成千上万的人前来观光。 4 5 为方便游客,巴士公司在各个旅游景点及宾馆,饭店等地都设置了巴士站并开通了一些单程巴士线路。 6 7 每条单程巴士线路从某个巴士站出发,依次途经若干个巴士站,最终 阅读全文
posted @ 2022-07-04 13:13 次林梦叶 阅读(42) 评论(0) 推荐(0)
摘要:《好博客》 链接:https://blog.csdn.net/m0_50564748/article/details/123143604 最全的最短路问题综合 《Dijkstra总结》 《为什么Dijlstra不能用在有负权边的图中》 Dijkstra算法其只能用在dist不断变大(或不断变小,即要 阅读全文
posted @ 2022-06-24 19:49 次林梦叶 阅读(34) 评论(0) 推荐(0)
摘要:最原始问题: 1 给定一个长度为 N 的数列,求数值严格单调递增的子序列的长度最长是多少。 2 3 输入格式 4 第一行包含整数 N。 5 6 第二行包含 N 个整数,表示完整序列。 7 8 输出格式 9 输出一个整数,表示最大长度。 10 11 数据范围 12 1≤N≤1000, 13 −109≤ 阅读全文
posted @ 2022-06-24 17:20 次林梦叶 阅读(35) 评论(0) 推荐(0)
摘要:《堆优化解决类似多源最短路问题》1 1127. 香甜的黄油 2 3 农夫John发现了做出全威斯康辛州最甜的黄油的方法:糖。 4 5 把糖放在一片牧场上,他知道 N 只奶牛会过来舔它,这样就能做出能卖好价钱的超甜黄油。 6 7 当然,他将付出额外的费用在奶牛上。 8 9 农夫John很狡猾,就像以前 阅读全文
posted @ 2022-06-23 17:02 次林梦叶 阅读(78) 评论(0) 推荐(0)