- 博客(25)
- 收藏
- 关注
原创 算法基础课 基础算法(三)区间和、区间合并
借该数数值判断,改变下标,找到一个大于等于其数值的最小的数,从而得到x对应下标;PS:求alls中每个数的位置离散化之后的值(即间接映射到数组下标)呢,因为这些数的位置范围大,如果采用直接映射,用数组来存储这些数,那么数组会过大)m组询问,也是成对的数,左右端点,也用PII类型的。找到后将数值插入到对应下标。n组成对的数,数值及其位置,用PII类型的。PS:整理就是将其去重后排序。(为什么要整理换一种映射方法,而不是。再对a[N]求前缀和。从前往后扫描,找第i个区间与。区间内、有交集、无交集。
2023-05-25 18:38:42 79
原创 算法基础课 第一章 基础算法(三)双指针
子序列很多,其中连续不重复的有1,12,2,23,235,3,35,3,最长的就是235。首先模拟样例 12235 (子序列)(连续)(不重复)799. 最长连续不重复子序列。799. 最长连续不重复子序列。
2023-05-25 18:35:03 62
原创 算法基础课 第一章 基础算法(二)高精度
1.如果A.size()<B.size() 那么应该做的是return add(B,A) 而非又一次调用add(B,A)sub()函数里面对A进行遍历是为了进行运算所以从低位开始,而下面输入输出从高位开始。if(i<B.size())这里i指的位数,别写成t(数值)注意:只有减的时候需要cmp。
2023-05-25 18:31:03 88
原创 排序算法(待完善)
比如说抽签,你我都是100积分,我序号1,你序号2,规定序号靠前的当选,那我就当选,必须使用稳定排序。比如待排序中有两个2,第一个成为2a,第二个称为2b,如果排序后其顺序改变了,那就是不稳定的。i比当前位置j小,则当前位置数字往后移动 r[j+1] = r[j],当前位置往前移动。不稳定只需要给出一个反例,只要有一个反例该算法就是不稳定的。比喻为发牌,拿到一张就给它插进去,拿完牌了也排完了。j当前位置指示器,要插入的元素i,j = i-1;ps:(3)只排地址,不真正的移动数据。3.内部排序和外部排序。
2023-05-25 18:26:34 75
原创 蓝桥杯C++ AB组辅导课 第四讲枚举、模拟与排序
全排列定义:把n个不同的元素排成的一列,称为这n个元素的一个全排列,简称排列。把A中出现的数的个数统计一下,再搞个前缀和,这样每个数前面有多少数字就一目了然了。接着对于B[i],找A数组比它小的数的个数,C数组中比它大的数个数。如果选择A数组,B和C是有联系的,不独立的,下面无法用乘法原理去做。长度1的连号区间 4个 长度为2的连号区间有1个 d = 3有1个 d = 4有1个。对于找数组中比一个某个数大的数字的个数,可以用方法一:前缀和。n个数,找长度为1、2、3...的连号区间的个数。
2023-05-25 18:22:16 157
原创 算法基础课 第三章 搜索与图论(一)树与图的深度优先遍历
删除每个节点 其左右儿子为连通块 剩余节点是另一个连通块。删除每个节点 统计其他连通块大小。
2023-05-20 21:42:44 80
原创 算法基础课 第一章 基础算法(三)位运算、区间和、区间合并
接下来,进行 m次询问,每个询问包含两个整数 l 和 r,你需要求出在区间 [l,r]之间的所有数的和。给定一个长度为 n的数列,请你求出数列中每个数的二进制表示中 1 的个数。现在,我们首先进行 n次操作,每次操作将某一位置 x 上的数加 c。给定 n个区间 [li,ri],要求合并所有有交集的区间。假定有一个无限长的数轴,数轴上每个坐标上的数都是 00。注意如果在端点处相交,也算有交集。输出合并完成后的区间个数。
2023-05-20 21:38:22 50
原创 算法基础课一第一章 基础算法(一) 双指针
给定一个长度为 n的整数序列 a1,a2,…,an以及一个长度为 m的整数序列 b1,b2,…而得的序列,例如序列 {a1,a3,a5} 是序列 {a1,a2,a3,a4,a5}的一个子序列。给定一个长度为 n的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。给定两个升序排序的有序数组 A和 B,以及一个目标值 x。请你求出满足 A[i]+B[j]=x的数对 (i,j)。请你判断 a序列是否为 b序列的子序列。数组下标从 00 开始。子序列指序列的一部分项按。
2023-05-20 21:29:40 47
原创 算法基础课 第一章 基础算法(一)前缀和、差分
输入一个 n行 m列的整数矩阵,再输入 q 个操作,每个操作包含五个整数 x1,y1,x2,y2,c1,,其中 (x1,y1) 和 (x2,y2)表示一个子矩阵的左上角坐标和右下角坐标。输入一个 n 行 m 列的整数矩阵,再输入 q个询问,每个询问包含四个整数 x1,y1,x2,y2。接下来输入 m个操作,每个操作包含三个整数 l,r,c表示将序列中 [l,r]之间的每个数加上 c。接下来再输入 m个询问,每个询问输入一对 l,r,。每个操作都要将选中的子矩阵中的每个元素的值加上 c。
2023-05-20 21:26:17 75
原创 算法基础课 第一章 基础算法(一)二分
对于每个查询,返回一个元素 k的起始位置和终止位置(位置从 00 开始计数)。给定一个按照升序排列的长度为 n 的整数数组,以及 q个查询。给定一个浮点数 n,求它的三次方根。如果数组中不存在该元素,则返回。
2023-05-20 21:16:19 44
原创 算法基础课 搜索与图论模板题
n−皇后问题是指将 n个皇后放在 n×n 的国际象棋棋盘上,使得皇后不能相互攻击到,即任意两个皇后都不能处于同一行、同一列或同一斜线上。给定一个整数 n,将数字 1∼n排成一排,将会有很多种排列方法。现在,请你按照字典序将所有的排列方法输出。请问,该人从左上角移动至右下角 (n,m) 处,至少需要移动多少次。现在,给你一个初始网格,请你求出得到正确排列至少需要进行多少次交换。
2023-04-03 18:35:37 84
原创 算法基础课 第二章 数据结构(二)
接着 回到root,有a,走a,有b,走b,没有c,创建c,创建e-d。每个集合用一棵树来表示,集合的编号就是根节点的编号。回到 root,有a,走a,无c,创建c,创建e-d。root 走a-c-e-d且d处有个标记,找到该单词。belong[x] = a 存储的是x属于哪个集合。小根堆 每个节点都小于左右子树的节点,跟节点是最小值。root 走a-b-c,找不到f,所以找不到该单词。每个节点存储它的父节点p[x]。如何求x的集合编号:(复杂度高 优化)p[x]是x集合编号。p[y]是y集合编号。
2023-04-03 16:33:03 53
原创 算法基础课 第二讲 数据结构(一)(自用)
优化:发现有个性质,比如a[3]>=a[5]。a[i],到a[3]距离比a[5]远,而数值上a[3]又比a[5]大,那么a[3]永远也不会被输出。r[k]指向的节点p,指向的左节点先设置好,这是p节点与k节点唯一的联系,如果k节点向右指向的节点先改动,那么p节点被孤立出来无法再进行指针指向修改(过于绝对,其实通过idx节点也可以修改,但是麻烦))暴力:窗口中有k数字,一共给了n个数,窗口滑动整个数组有O(k的n次方-1)复杂度。对于模式串,也没有必要从第一个a开始,从b开始即可,因为知道前面的是aa。
2023-03-30 16:30:43 63
原创 操作系统课程 蒲晓蓉老师
一类是对于用户方面 用户命令构成的集合称为用户接口interface,用户命令就是用户的使用,另一类是对于应用软件方面系统调用构成的集合成为 程序接口简称API,系统调用就是调用系统的。公平性就是指需要考虑到用户的多种需求,当然对于不同的操作系统要求也不同,对于无人驾驶来说响应能力是最高优先级的。这些需求又可以分为两类,一类是功能性的需求,也就是1,另一类则是非功能性的需求,也就是2、3.脱机和联机的区别就是是否受系统控制,受控制就是联机的,不受就是脱机的。2.对这些服务的使用的限制条件。
2023-03-30 16:29:40 140
原创 2023/3/23刷题记录
应用:memset数组 在使用数组后进行初始化 然后重新赋值之类。P1563 [NOIP2016 提高组] 玩具谜题。[NOIP2015 普及组] 扫雷游戏。目前想法有结构体、偏移量优化。
2023-03-24 11:40:20 53
原创 c++中的字符串
/ 默认初始化,s1是一个空字符串// s2是s1的副本,注意s2只是与s1的值相同,并不指向同一段地址// s3是该字符串字面值的副本// s4的内容是 "cccccccccc"return 0;
2023-03-14 20:28:39 83
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人