随笔分类 -  AcWing算法基础课

AcWing算法基础课学习笔记
摘要:背包问题 01背包 (1). 二维dp #include<iostream> using namespace std; const int N = 1010; int m, n; int V[N], W[N]; int f[N][N]; //f[i][j]表示从i个物品中选,容量不超过j的最大价值 阅读全文
posted @ 2022-09-13 14:44 hjy94wo 阅读(23) 评论(0) 推荐(0) 编辑
摘要:DFS AcWing 842. 排列数字 #include <iostream> using namespace std; const int N = 10; int n; int path[N], st[N]; void dfs(int u) { if (u == n) { for (int i 阅读全文
posted @ 2022-09-02 15:33 hjy94wo 阅读(65) 评论(0) 推荐(0) 编辑
摘要:### 整数n的二进制数的第k位数```n >> k & 1``` ### lowbit运算```lowbit(x)x & (~x + 1) = x & (-x)``` ### AcWing 801. 二进制中1的个数```#include <iostream> using namespace st 阅读全文
posted @ 2022-08-23 15:09 hjy94wo 阅读(13) 评论(0) 推荐(0) 编辑
摘要:双指针模板 for (int i = 0, j = 0; i < n; i ++ ) { while (j < i && check(i, j)) j ++ ; // 具体问题的逻辑 } AcWing 799. 最长连续不重复子序列 #include <iostream> using namespa 阅读全文
posted @ 2022-08-23 15:07 hjy94wo 阅读(34) 评论(0) 推荐(0) 编辑
摘要:前缀和 思路:求l到r区间的和用前r个数减去前l - 1个数. #include <iostream> using namespace std; const int N = 100010; int a[N], s[N]; int main() { int n, m; scanf("%d%d", &n 阅读全文
posted @ 2022-08-23 11:04 hjy94wo 阅读(29) 评论(0) 推荐(0) 编辑
摘要:整数二分模板 l = mid这个模板mid需要+1 int bsearch_1(int l, int r) { while (l < r) { int mid = l + r >> 1; if (check(mid)) r = mid; // check()判断mid是否满足性质 else l = 阅读全文
posted @ 2022-08-22 15:08 hjy94wo 阅读(39) 评论(0) 推荐(0) 编辑
摘要:###快速排序 步骤 确定分界点:q[l], q[(l+r)/2], q[r], 随机 调整区间 递归处理 void quick_sort(int q[], int l, int r) { if (l >= r) return; //递归结束条件 int i = l - 1, j = r + 1, 阅读全文
posted @ 2022-08-22 10:55 hjy94wo 阅读(31) 评论(0) 推荐(0) 编辑

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