个人学习笔记平台,欢迎大家交流

红叶~

Be humble, communicate clearly, and respect others.

12 2021 档案

摘要:诶式筛法 void get_primes2() { for(int i = 2; i <= n;i++) { if(!st[i]){ primes[cnt++] = i; // 把素数存起来 for(int j = i + i; j <= n;j += i) st[j] = true; // 把质数 阅读全文
posted @ 2021-12-26 15:46 红叶~ 阅读(40) 评论(0) 推荐(0) 编辑
摘要:背包模板 01背包问题 朴素写法 #include<iostream> #include<algorithm> using namespace std; const int N = 1010; int v[N], w[N]; int f[N][N]; int main() { int n, m; c 阅读全文
posted @ 2021-12-26 15:43 红叶~ 阅读(41) 评论(0) 推荐(0) 编辑
摘要:图算法(数组版) 1.1最短路径Dijkstra算法 假设顶点是V0V5 六个点,开始时候是没有连线的,但是已知能互相到达的顶点之间的边权。 步骤是每次从顶点0开始查找,找出距离顶点最短的点,然后标记该点为true,再查询该点能直达的其他点加上边权会不会比原先记录的距离值小 >即更新最 阅读全文
posted @ 2021-12-26 15:42 红叶~ 阅读(271) 评论(0) 推荐(0) 编辑
摘要:单链表 模板 #include<iostream> using namespace std; const int N = 100010; int idx, a[N], ae[N]; int head; // idx 表示当前还未填入的数,可以表示第几个插入的顺序,不过从0开始 // a[i]表示第 阅读全文
posted @ 2021-12-26 15:40 红叶~ 阅读(50) 评论(0) 推荐(0) 编辑
摘要:快排 void quick_sort(int q[], int l, int r) { if (l >= r) return; int i = l - 1, j = r + 1, x = q[l + r >> 1]; while (i < j) { while (q[++ i] < x); whil 阅读全文
posted @ 2021-12-26 15:38 红叶~ 阅读(52) 评论(0) 推荐(0) 编辑
摘要:最长不重复子序列 给定一个长度为 n 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。 双指针算法思路 j 是慢指针,i 是快指针, 维护一个不重复的子序列 i 一直向右移动,且边记录当前位置数字出现的次数,如果发现当前位置的数出现次数 > 1,j++ j向右移动,因为前面的不重复序 阅读全文
posted @ 2021-12-04 17:34 红叶~ 阅读(41) 评论(0) 推荐(0) 编辑
摘要:前缀和和差分 用处 差分和前缀和是解决矩阵部分和,与解决对一个连续序列进行操作的简化复杂度操作。 前缀和 一维前缀和 预处理 s[i] = s[i-1] + a[i] s[i] 统计a[1]..a[i]的和,从1开始 s[i] = a[1] + a[2] + ....a[i] a[l] + .... 阅读全文
posted @ 2021-12-04 16:48 红叶~ 阅读(40) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示