![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACwing学习笔记-算法基础
文章平均质量分 73
学习acwing算法基础课课程时做的笔记记录
一只牛Niu
这个作者很懒,什么都没留下…
展开
-
数组模拟单链表与双链表
例如操作过程中一共插入了 n 个数,则按照插入的时间顺序,这 n 个数依次为:第 1 个插入的数,第 2 个插入的数,…第 n 个插入的数。删除操作:删除第k个插入的数相当于删除节点下标为k - 1的后一个节点,因为第一个插入的数下标为0,第二个插入的数下标为1...则第k个插入的数下标为 k - 1;第k个插入的数,相当于下标为k + 1的节点,因为第一个插入的数下标为2,第二个插入的数下标为3...以此类推,第k个插入的数下标为k + 1,所以图中节点。,表示在第 k 个插入的数右侧插入一个数。....原创 2022-08-09 10:44:08 · 90 阅读 · 0 评论 -
acw - 4262.空调
题目链接https://www.acwing.com/problem/content/4265/分析:原创 2022-05-12 20:29:17 · 158 阅读 · 0 评论 -
★差分数组★
目录差分分析例题差分分析假设a1,a2,a3,... ,an为前缀和数组构造b1,b2,b3,...,bn差分数组使得b[i]=a[i]-a[i-1]即an=b1+b2+b3+ ··· bn相当于求前缀和的逆过程作用:用O(1)的时间给原数组的某一段区间里的每个数都加上一个常数如让一个数组的区间[l,r]所有的数都加上常数c,则只需要让 b[l]=b[l]+c,b[r+1]=b[r+1]-c,那么它的前缀和数组a[l]~a[r]每个数都会加上c,而a原创 2022-05-12 18:02:53 · 112 阅读 · 0 评论 -
动态规划(acw)
本篇记录动态规划学习时的相关问题,预计花费12天学完,冲冲冲!!!目录内容总览背包问题01背包内容总览 背包问题 线性DP 区间DP 计数类DP 数位统计DP 状态压缩DP 树形DP 记忆化搜索 背包问题假设你在小岛上,上面有很多物品,没件物品的价值都不一样,你有一个背包,体积有限,你如何装才能使背包里的物品价值最大呢?(背包不一定能被装满)01背包特点:每件物品最多只能用一次完全..原创 2022-05-07 23:23:35 · 606 阅读 · 0 评论 -
★双指针算法★
目录① 最长连续不重复子序列② 最长不含重复字符的子字符串① 最长连续不重复子序列题目:分析:s[N]:开一个100000的数组,动态的记录一下我们每次求的区间每个数出现的次数代码:#include<iostream>#include<algorithm>using namespace std;const int N=100010;int s[N];int a[N]; int n;int ans;int ma...原创 2022-04-30 23:00:14 · 114 阅读 · 0 评论 -
★离散化★
题目:输入样例:3 31 23 67 51 34 67 8输出样例:805分析:将数轴上用到的区间按大小映射到数组下标0,1,2,...,n,注意!不是数值,是数轴上的具体某个位置代码:#include<iostream>#include<algorithm>#include<vector> using namespace std;//离散化:把一个大区间的范围映射到一个...原创 2022-05-03 23:40:20 · 198 阅读 · 0 评论 -
★二分与前缀和★
目录①二分数的范围数的三次方根机器人跳跃问题四平方和①二分一般如果题目的答案在一个有序区间,且具有两段性,即在它前面的数据满足一个性质,而在它后面的性质也满足一个性质,即可用二分法数的范围题目详情:给定一个按照升序排列的长度为n的整数数组,以及q个查询。对于每个查询,返回一个元素k的起始位置和终止位置(位置从0开始计数)。如果数组中不存在该元素,则返回-1 -1。输入格式第一行包含整数n和q,表示数组长度和询...原创 2022-04-05 22:51:15 · 1129 阅读 · 0 评论 -
★递归递推★
---------------------------------------------------------------------------------------------------------------------------------目录92-递归实现指数型枚举94-递归实现组合型枚举1209-带分数92-递归实现指数型枚举题目:从 1∼n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。输入格式:输入一个整数 n。输出格式:原创 2022-04-04 18:03:11 · 4202 阅读 · 0 评论 -
★高精度运算★
目录高精度加法A+B高精度乘法A*B高精度加法A+B题目详情:输入两个整数,求这两个整数的和是多少。输入格式输入两个整数A,B,用空格隔开输出格式输出一个整数,表示这两个数的和数据范围0≤A,B≤10^8样例输入:3 4样例输出:7分析:1、大数加法,要注意越界问题,所以我们要用数组存储数A、B2、如何用数组存储A、B呢?首先,我们把A、B设置为字符串变量读入,再将A、B从低位到高位,依次存入数组,即低位先.原创 2022-04-07 20:42:43 · 141 阅读 · 0 评论 -
★位运算★
①统计二进制数中1的个数题目:输入一个正整数,计算二进制形式1的个数分析:数在计算机中是以补码的形式存储的,而正数的原反补码相等负数的补码从左往右数的最后一个1及其右边同原码,左边同反码x&-x会返回同原码相同的部分,也就是最右边的1及其右边代码:#include<iostream>using namespace std;int lowbit(int x){ return x&-x;} int main()..原创 2022-04-30 23:16:24 · 74 阅读 · 0 评论 -
★区间合并★
题目acw-803.区间合并输入样例:51 22 45 67 87 9输出样例: 3分析:代码:#include<iostream>#include<algorithm>#include<vector> using namespace std;const int N=100010; //n最大取100000 typedef pair<int,int> PII..原创 2022-05-04 16:16:38 · 210 阅读 · 0 评论 -
基础算法(acw)
该笔记为学习记录笔记,基础算法部分包括(每天都要好好学习认真做笔记啊啊啊)排序 二分 高精度 前缀和与差分 双指针算法 位运算 离散化 区间合并争取在2022.4.25之前将这部分学完,在此立下flag -- 4.15留目录排序快速排序排序快速排序主要思想--分治步骤: 确定分界点:q[l],q[(l+r)/2],q[r]随机 调整范围:左边<=x,右边>=x 递归处理左右两边 暴力替代:开辟两个数组,小于等于原创 2022-04-15 19:53:38 · 375 阅读 · 0 评论