算法课记录及总结
文章平均质量分 94
宛宛宛
这个作者很懒,什么都没留下…
展开
-
背包问题总结
背包问题1,01 背包问题2,完全背包问题3,多重背包问题4,混合背包问题5,二维费用问题6,分组背包问题7,背包问题求方案数8,求背包问题的方案9,有依赖的背包问题1,01 背包问题问题描述: 一件物品只有选和不选两种情况,每件物品只能选一次例题:链接: 01背包问题.暴力解法:二维数组动态规划# include <iostream># include <algorithm># include <cstring>using namespace std;原创 2021-11-04 15:36:34 · 142 阅读 · 0 评论 -
位运算,集散化与区间合并(附例题)
位运算,离散化与区间合并位运算1,如何求一个数的二进制表示中第k个元素2,lowbit() 运算位运算1,如何求一个数的二进制表示中第k个元素先将第 k 位移动到最后一位,采用右移操作: n >> k查看最后一位是多少: x & 1前两步结合起来 : n >> k & 1例如下面程序,最终输出 1010,即 10 的二进制表示#include <iostream>using namespace std;int main(){ i原创 2020-09-26 21:01:19 · 419 阅读 · 0 评论 -
可以用双指针解决的题目(暂更两题)
可以用双指针解决的例题(优化时间复杂度)1,最长连续不重复子序列数组元素的目标和1,最长连续不重复子序列题目链接: 最长连续不重复子序列.题目:给定一个长度为n的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。输入格式第一行包含整数n。第二行包含n个整数(均在0~100000范围内),表示整数序列。输出格式共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。数据范围1≤n≤100000输入样例:51 2 2 3 5输出样例:3注:子序列为 235题原创 2020-09-22 21:34:53 · 141 阅读 · 0 评论 -
前缀和与差分数组(附练习题)
前缀和与差分数组前缀和前缀和对于 a1, a2, a3, a4, a5, a6, …前缀和 Si = a1 + a2 + a3 + a4 +…+ ai,S0 = 0其中,[l, r] 区间的前缀和为:Sr - S(l-1)非原创 2020-09-22 18:27:27 · 634 阅读 · 0 评论 -
高精度加减乘除运算
这里写目录标题高精度高精度主要分为以下四种情况A + B,其中 A 和 B 的位数都是 大概为 10^6左右A - B,其中 A 和 B 的位数都是 大概为 10^6左右A * a,其中 A 位数小于等于10^6,a的位数小于等于...原创 2020-09-15 23:26:50 · 270 阅读 · 0 评论 -
二分法及相关题
二分法及例题1,整数二分法模板对应例题:数的范围2,浮点数二分法模板对应例题:高精度加法1,整数二分法模板bool check(int x) {/* ... */} // 检查x是否满足某种性质// 区间[l, r]被划分成[l, mid]和[mid + 1, r]时使用://适合情况:满足该性质的范围在右边int bsearch_1(int l, int r){ while (l < r) { int mid = l + r >> 1;原创 2020-09-11 14:39:08 · 210 阅读 · 0 评论