算法笔记
文章平均质量分 53
Blumenkranz-
这个作者很懒,什么都没留下…
展开
-
并查集的基础知识与应用
并查集的作用1.将元素分类,生成划分联通分量2.集合的合并3.判断各个元素是否属于同一个集合引入例题题目描述如题,现在有一个并查集,你需要完成合并和查询操作。输入格式第一行包含两个整数 N,MN,M ,表示共有 NN 个元素和 MM 个操作。接下来 MM 行,每行包含三个整数 Zi,Xi,Yi,Zi。当Zi=1时,将Xi与Yi所在集合合并。当Zi=2时,输出Xi与Yi是否在同一集合内,是的输出Y;否则输出N。输出格式对于每一个 Zi =2 的操作,都有一行输出,每行包含一个大写字母原创 2021-04-27 00:36:47 · 181 阅读 · 0 评论 -
DFS(深度优先搜索)的总结(含有例题)
DFS的思想以及模板思想深度优先搜索属于图算法的一种,英文缩写为DFS即Depth First Search.其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次.在搜索的过程中,朝着一个方向进行搜索,也是就是我们说的不撞南墙不回头。不达到限制条件的边界,本次搜索是不会停止的。到达本次搜索的边界后,再折返进行下一次搜索。模版DFS大多有固定几个组成的部分:1.cheak部分,判断搜索是否到达了边界(通过判断下一个要搜索的的点是否合法)2.vis或者room数组(原创 2021-04-17 20:25:53 · 623 阅读 · 0 评论 -
算法入门:日期计算(附蓝桥杯)
1.闰年的判断2.回文日期原创 2021-04-08 01:14:35 · 729 阅读 · 0 评论 -
c++高精度运算(减法)
c++高精度运算由于c++不能进行位数过高的数据运算,所以要通过模拟数组来进行运算,首先是加法。通过char或string型数据输入字符来模拟数字的输入,数组下表对应的元素应当是处于同一位置的数字,下标相同的两个元素相加表示的既是结果。需要注意的是1.输入的是字符串,但是相加的时候必须要转换为数字,所以将字符型减去‘0’(0的字符)即可得到int型的数字。2.输入的数组从最高位开始输入,不利于计算。与加法类似,减法要注意的是借位运算。总体上分为这几个部分:1.判断两个数谁大谁小的bool型函数。原创 2021-04-03 23:01:37 · 1247 阅读 · 0 评论 -
DP入门——最长公共子序列(LSC)
DP入门——最长公共子序列(LSC)背景提示:一个给定的序列的子序列是在该序列中删去若干元素后得到的序列(并非连续)。问题:给定两个序列x与y,当另一个序列z既是x的子序列又是y的子序列的时候,就称z为x与y的公共子序列,其中最长的为最长公共子序列。——————————————————————————————思路:在我们寻求xi与yj的LCS之前,我们应该明白它是由x(i-1)和y(j-1)的LCS递推得到的,那么我们就来看看递推的过程。首先,从x(j-1)与y(j-1)递推到下一项时,我们应当判原创 2021-04-03 13:38:03 · 385 阅读 · 0 评论 -
c++高精度运算(加法)
c++的高精度运算由于c++不能进行位数过高的数据运算,所以要通过模拟数组来进行运算,首先是加法。通过char或string型数据输入字符来模拟数字的输入,数组下表对应的元素应当是处于同一位置的数字,下标相同的两个元素相加表示的既是结果。需要注意的是1.输入的是字符串,但是相加的时候必须要转换为数字,所以将字符型减去‘0’(0的字符)即可得到int型的数字。2.输入的数组从最高位开始输入,不利于计算,如图↓3.别忘了,如果倒序相加出来,结果的末尾有0,正序输出时应该去掉代码如下:#inclu原创 2021-04-02 01:57:46 · 4272 阅读 · 1 评论 -
牛客算法NC14583
牛客算法NC14583链接:https://ac.nowcoder.com/acm/problem/14583来源:牛客网题目:从前,有n只萌萌的糖糖,他们分成了两组一起玩游戏。他们会排成一排,第i只糖糖会随机得到一个能力值bi。从第i秒的时候,第i只糖糖就可以消灭掉所有排在他前面的和他不是同一组的且能力值小于他的糖糖。为了使游戏更加有趣,糖糖的爸爸,娇姐,会发功m次,第i次发功的时间为ci,则在第ci秒结束后,b1,b2,…,bci都会增加1.现在,娇姐想知道在第n秒后,会有多少只糖糖存活下来原创 2021-03-31 23:07:12 · 2933 阅读 · 4 评论