- 博客(23)
- 收藏
- 关注
原创 【Git多人开发与协作之团队的环境搭建】
Git 是一个高效的开发工具,我们可以给团队的每个人员配置好编译环境和 Git 环境后,每个人员拥有一个本地分支,来更新和获取远程分支的内容,了解现在团队的代码开发进度,或者通过 Git 回溯到之前开发的代码内容。通过 Git 每个人可以开发不同的功能,页面,然后通过 Git 来合并分支,完成多个人共同开发不同的功能。因此我们需要一个远程分支,来表示我们当前项目的总的开发进度,再使用一个远程分支表示我们测试的进度,我们会在这上面去合并我们已经开发的新功能,在本地我们每个人会开发不同的功能,进行测试和验证。
2024-11-25 20:05:55
1359
原创 2024牛客暑假多校训练1
两场比赛有各种队伍参加,现在给出两场比赛的队伍名字,ac数目,得分,同一只队伍可能出现在两场比赛中,即它参加比赛会获得的得分。这样对于我们参加的比赛来说,我们就可以去掉比我们高的队伍,即去除有两场比赛参赛资格且比我们强的队伍,把它安排到另外一场我们没有参加的比赛,最后得到我们的最高排名。通过cmp排序后,我们要求我们参加比赛的最佳排名,那么我们就要判断出哪些队伍在两场比赛都出现了,都出现了我们就可以把它放到另外一场我们没有参加的比赛,题目c,给你一个空数组,让你执行t次操作。b数组记录包含几个数的后缀和。
2024-09-02 17:34:03
278
1
原创 算法:动态规划
开始前先用两个小问题开开思路:这是一个投票的算法,x代表候选者,votes代表票数,当votes等于0就说明要更换新的候选者了,在候选者遍历的期间,它会根据与当前元素是否相同,进行累加或者减少,最终得到的候选者(没有被归0或者代替的),就是数组中存在最多次数的元素。动态规划扩宽一下你的思路,主要是学习他怎么避免重复求解,什么样的问题用动态规划,以及怎么做,提高运行效率的。动态规划(Dynamic Programming, DP)在查找有很多重叠子问题的情况的最优解时有效。它将问题重新组合成子问题。
2024-05-03 22:02:43
1269
原创 ACM的训练计划
第二行包含三个整数l 1,l2l_1,l_2l1,l2和l3l_3l3(1≤l1,l3≤10001\le l_1,l_2,l_3\l_1,l_2,l_3\10001≤l1,l2,l3≤1000),表示每只手的长度。第三行包含三个整数t 1,t2t_1,t_2t1,2和t3t_3t3(1≤t1,t2,t3≤10001\le t_1,t_2,t_3\t_1,t_2,t_3\10001≤t1,2,t3≤1000),表示每只手以360度旋转所需的时间。嘶,有点不好直接算,不怕我们用代码算。
2024-05-02 21:22:24
1191
2
原创 数据结构:堆
简单点来说,因为我们是用优先队列存储的,我们要删除根节点时,要先把堆低的节点与跟节点交换,在进行反向的堆化,即父节点与两个子节点比较,取最大的子节点与父节点交换,并持续下去。如图所示,我们比较插入节点与其父节点的值,如果插入节点更大,则将它们交换。,我们将根节点的值与其两个子节点的值进行比较,将最大的子节点与根节点交换。用人话来说,就是在数组后面加一个元素val,val通过索引来与它的父节点进行比较,它比父节点大,他们就进行交换。当使用数组表示二叉树时,元素代表节点值,索引代表节点在二叉树中的位置。
2024-01-07 20:59:52
1001
1
原创 字典树、线段树
改一个值的时间复杂度是O(n),查找一段数据的值的和时间度是O(1),因为sum_query是一个记录之前数的和的数组。字典树,顾名思义,也就是像字典一样的树。字典中的每个单词在字典树中表现为一条从根节点出发的路径,路径相连的边上的字母连起来就形成对应的字符串。线段树的根节点存储的值是所有值的和,左节点是当前父节点的一半值的和,右节点也是一半的值的和,不过左节点是前半段,右节点是后半段。**:利用空间换时间,利用字符串的公共前缀来降低查询时间的开销,最大限度的减少无谓的字符串比较,以达到提高效率的目的。
2024-01-05 17:39:23
1023
1
原创 二叉搜索树
也叫做二叉查找树、有序二叉树或者排序二叉树。二叉搜索树遵循某种顺序来排列元素。在二叉搜索树中,左节点的值必须小于父节点,右节点的值必须大于父节点。该规则递归地应用于根的左子树和右子树。上图中,我们可以观察到根节点为40,左子树所有节点都小于根节点,右子树所有节点都大于根节点。同样,我们可以看到根节点的左子节点大于其左子节点且小于其右子节点。所以,它也满足二叉搜索树的性质。因此,我们可以说上图中的树是二叉搜索树。
2024-01-03 23:19:15
857
1
原创 数据结构:并差集
那么以上个例子为例,建一个数组parent,在数组中,我们给下标为1和2的数组元素赋值为0,表示0和2节点指向1。2.关于这个算法的parent数组的修改匹配,我其实是不了解的,因为作者也没说这个在合并的时候,通过边就可以实现动态的修改parent数组,3-2.此时我们判断2和4是否相连会形成环,就判断2和4的父节点是否相同,这个例子中,我们看到2和4的父节点都为4,说明它们相连会形成环。我们构造一个树,用数组表示。指的就是我们初中所学的集合概念,在这里指的是不相交的集合,即一系列没有重复元素的集合。
2024-01-03 22:56:10
1150
1
原创 数据结构:树
由 n≥0 个节点与节点之间的关系组成的有限集合。当n=0 时称为空树,当n>0 时称为非空树。树数据结构被定义为称为节点的对象或实体的集合,这些节点链接在一起以表示或模拟层次结构。树数据结构是一种非线性数据结构,因为它不以顺序方式存储。它是一种分层结构,树中的元素排列在多个级别中。在树数据结构中,最顶层的节点称为。每个节点都包含一些数据,数据可以是任何类型。在上面的树结构中,节点包含员工的姓名,因此数据类型将是字符串。每个节点都包含一些数据以及其他节点的链接或引用,这些节点可以称为。
2023-12-06 22:24:56
310
1
原创 C++ :链表
list<int> l //声明一个空链表list<int> l{1,2,3} //声明一个含指定元素的链表list<int> l(n) //声明一个含n个元素的链表并全部初始化为0list<int> l(n, m) //声明一个含n个元素的链表并全部初始化为mlist<int> l(a,b) //声明一个链表并初始化为区间[a,b]中的元素,a、b是迭代器。
2023-12-04 20:35:06
283
原创 数据类型:字符串-1.1
/ascall码表的大小是0-255,因此定一个256空间的数组++i) {//用for循环遍历字符串= t_first_index[t[i]]) {//如果字符串对应的字符的记录数(通过字符对应的ascall码作为下标,我们得到一个字符对应在数组的位置,数组记录了每个字符的数字)不一样,就返回false//分别读到两个字符,把它们数字上对应的位置记录相同的数字,如果数字对应就说明,是一个字符转成另外一个字符。
2023-11-28 21:52:26
198
原创 STL标准库,持续更新-----
容器、分配器、算法、迭代器、、适配器、仿函数。有:string、vector、deque(双端队列)、list(双向链表)、forward_list、queue、priority_queue(优先队列)、stack、四种关联容器:set(集合,自动排序)、multiset、map、multimap、四种无关容器:unordered_set、unordered_multiset、unordered_map、unordered_mutimap。
2023-11-27 22:31:28
78
原创 数据结构:哈希表
1.直接定址法:即:Hash(key) = key 或者 Hash(key) = a * key + b,其中 a 和 b 为常数。适合于关键字分布基本连续的情况,如果关键字分布不连续,空位较多,则会造成存储空间的浪费。2.哈希表(Hash Table):通过键 key 和一个映射函数 Hash(key) 计算出对应的值 value,把关键码值映射到表中一个位置来访问记录,以加快查找的速度。哈希函数(Hash Function):将哈希表中元素的关键键值映射为元素存储位置的函数。
2023-11-27 15:27:02
335
原创 数据结构:栈、单调递减栈和单调递增栈
只有比栈顶元素小的元素才能直接进栈,否则需要先将栈中比当前元素小的元素出栈,再将当前元素入栈。这样就保证了:栈中保留的都是比当前入栈元素大的值,并且从栈顶到栈底的元素值是单调递增的。
2023-11-20 21:38:50
488
1
原创 数据结构:队列
队列是一种只有入队和出队的数据结构。队列可以是单线队列、循环队列、优先队列。它是一种先进先出的数据结构。1.线性队列:它有两个指针:head和tail其中head指向头元素的前一位(也可以是指向头元素),tali指向末尾元素的位置,如果我们要出队一个元素,那么就把head指针向后移动一位。如果我们要入队一个元素,也是给tail指针后面的元素赋值后,向后移动一位。缺点:线性队列的缺点是容易造成对储存空间的浪费,如果tail指针已经走到最后面,那么即使队列中即使还有元素,也无法入队。它可以通过依次移动元
2023-11-20 21:17:32
403
1
原创 备战蓝桥杯第四节
/思路:建立一个映射(unordered_map)pairs,来当做我们对括号是否对应的标准,根据栈的性质、key为后括号、value为前括号,我们通过循环把字符串放入栈中、判断是否是正确括号:在这个过程中、我们只放入前括号、一旦检测到后括号、我们就拿映射去做对比,因为根据括号的正确顺序和栈的性质、如果检测到后括号,那么此时栈顶的字符一定是对应的前括号。//思路:把小的链表的下一位地址作为与另外一个链表的值进行下一次比较、通过依次的返回最小的链表的值的地址,我们用返回的链表的地址作为当前的下一位;
2023-11-16 23:15:49
204
1
原创 hdlc路由协议配置、pap认证配置
广域网简称WAN,是一种跨越超大的、地域性的计算机网络集合。通常跨省、市、甚至一个国家。广域网包括很多子网,子网可以是局域网;也可以是小型的广域网。由于串行通信有着传输距离远、成本低的特点,所以远距离、超远距离的通信中较常使用串行通信。广域网以及两种最常用的广域网链路层协议——PPP协议和HDLC协议。hdlc是面向比特网的数据传输的数据链路层协议。我们以ensp的配置为例,下面是示意图:我们建立两个AR2220路由,分别为总部路由和分布路由。在路由器的接口选择界面我们选择25A。
2023-11-15 19:48:10
825
1
原创 备战蓝桥杯第三节
/思路:在原来的链表的第一位的左边建立一个链表节点end(值为null),在定义一个指针为l指向头结点,在循环中保证l存在的前提下,然后定义一个r指针为l的下一位,使得l的下一位指向我们建立的end指针,用于反转指针,最后根据循环移动end、l、r(r只有满足循环才会继续移动),这样我们就得到了一个反转链表;//思路:定义一个指针,它不断前进,如果它在前进的情况下,当前值等于下一位的值,那么就把当前的下一位指向下一位的后一位,这样就删除了相同的元素,但是这样只能一次性删除一个。//删除我们要删除的节点。
2023-11-13 16:45:13
177
原创 备战蓝桥杯第二节
/思路:为了进一步减小复杂度,我们继续利用双指针,首先左边指向最后一个满足条件的字符,右边取最后满足条件的字符(左边向右,右边向左,因此它们最后满足条件的字符不是同一个),如果它们各种满足条件的最后一个字符相等,就说明之前满足条件的字符也是相等的,则说明是回文串。//思路:我们要移动一组数组里面的0,它可能是一个或者连续的0,但是只要我们交换这一片0的第一个0和这一片0的最后一个0的后面的数,我们就可以实现这一片0向右移动,就算数组存在有多片0,它们也会移动成为一片0。//还可以用双指针。
2023-11-10 22:38:09
154
1
原创 备战蓝桥杯第一节
处理数据:现在我们开始处理里面的数据了,我们从“个”位开始,也就是数组的最后一位,当我们进位后,就判断“十”位是否要进位,如此循环,直到索引为0,计算的进位是digits[ptr] / 10,进位或者没有进位后的是 digits[ptr] % 10;特殊情况:如果我们判断数组的每一位都进位了,就会导致ptr为负数,那么我们就建立一个新的数组,并把原来处理好的数组,的第一位加1,这里应该是先+1,在用循环把旧数组的内容复制到新数组,然后修改数组大小,返回新数组。// 如果没有增加新的位数,则返回大小不变。
2023-11-01 22:36:35
182
1
原创 ospf路由协议从基础讲解到实验配置
接下来我们在R2、R3、R4、也配置好同理的操作。度量值 (COST) //cost=带宽参考值%带宽(华为每个接口默认带宽为10的9次方,这里默认的带宽参考值是10的8次方,因此算出来为0.1,取整就是1,那么192.168.12.0的网段去往192.168.34.0的网段的路由就要经过两个路由器,因此为2)ospf可以分为两个区域:骨干区域和非骨干区域,非骨干区域通过骨干区域连接,而且应该ospf只能有一个骨干区域,骨干区域必须和所有非骨干区域连接,骨干区域为0;
2023-10-07 23:06:59
267
1
原创 静态路由、备份静态路由、缺省路由的配置
配置好了之后我们用tracert 10.0.3.1来查看一下路由器AR1去给AR2路由器下LoopBack0接口的数据包会通过那些路由器,发现下一跳的接口ip是10.0.12.3(也就是路由器AR3),这是正确的,因为在我们配置静态路由时没有指定下一条的偏好,那么默认是60,比我们配置的静态备份的路由的80小,所以下一跳的接口ip是10.0.12.3。为了验证我们配置的静态备份路由是否起作用,我们可以进入AR1路由器下的g0/0/1的接口视图下把相应的接口断掉,即shutdown掉。最后我们来验证一下。
2023-09-19 17:00:54
2266
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人