上一页 1 2 3 4 5 6 ··· 10 下一页
摘要: 最大流问题是给一个有向网络,每条边都有一个容量,问从起点到终点最多能输出多少流。 这是一个模型,在处理某些问题合适建模,就能利用这些现成的算法,使得问题得到解决。 EK算法采用BFS找增广路,不断用流到这个点的最大流和现存容量的较小值进行更新,就这样每次找到一条更新整个图,然后添加反向弧,反向弧的容 阅读全文
posted @ 2021-10-05 21:29 empty_thought 阅读(200) 评论(0) 推荐(0)
摘要: 输入一个n行m列的整数矩阵,再输入q个操作,每个操作包含五个整数x1, y1, x2, y2, c,其中(x1, y1)和(x2, y2)表示一个子矩阵的左上角坐标和右下角坐标。 每个操作都要将选中的子矩阵中的每个元素的值加上c。 请你将进行完所有操作后的矩阵输出。 输入格式 第一行包含整数n,m, 阅读全文
posted @ 2021-10-04 15:46 empty_thought 阅读(121) 评论(0) 推荐(0)
摘要: 仿照一维树状数组的搭建可搭建二维树状数组,在二维树状数组的基础上再搭建二维差分树状数组。 #include<iostream> #define N 100 using namespace std; int n, m; int a[N][N],c[N][N]; int tree[N][N]; int 阅读全文
posted @ 2021-10-04 15:40 empty_thought 阅读(54) 评论(0) 推荐(0)
摘要: 搭建一维差分数组可以很方便的进行区间修改和单点查询 #include<iostream> #define N 100 using namespace std; int c[N], a[N],tree[N]; int n; int lowbit(int x) { return x & (-x); } 阅读全文
posted @ 2021-10-04 15:27 empty_thought 阅读(38) 评论(0) 推荐(0)
摘要: 分治法的基本思想是将将一个问题分解成若干个规模更小的子问题,然后依据子问题的解得到原问题的解 这个需要递归解决问题,递归解决的子问题一定要与原问题的结构形式保持一直,如果不能一致,需要变成一致 递归函数传递的参数不能是常数 归并算法和快排都是分治 两个n位数的乘积也能分治,将两个n位数从中间分开,高 阅读全文
posted @ 2021-09-25 17:20 empty_thought 阅读(41) 评论(0) 推荐(0)
摘要: 讨论基于比较的排序算法 排序算法如果依赖比较,时间复杂度做的不会比nlogn更好,我们可以依据比较的过程画一棵决策树,每进行一次比较都会有两种结果(事先不知道数的大小),将这次结果设为根节点,往下引入两个叶子结点,把未分出大小的接着比较,比较到最后会有n!种结果,因为有n!种排列。而通往每个结果的路 阅读全文
posted @ 2021-09-25 16:52 empty_thought 阅读(407) 评论(0) 推荐(0)
摘要: T(n)=T(n-1)+T(n-2),这个是斐波那契的定义,也说明了计算的方法,在数据不大的情况下,求斐波那契的第n项时间复杂度是O(n),但当n很大时,两个n位数的加法也需要O(n),这样会将时间复杂度升到O(n^2),这个能不能用其他方法降低复杂度,用乘法加速加法,用乘法表示加法 两个n位数相乘 阅读全文
posted @ 2021-09-25 15:51 empty_thought 阅读(532) 评论(0) 推荐(0)
摘要: 树状数组是一种特殊的结构,并不是完全的树,而是与一个数组长度相等的另一个数组 设原数组为A[],树状数组为C[] C数组里的元素是A数组若干个元素之和,而求和是有一定规律 用树状数组求和是logN的效率 #include<cstdio> #include<algorithm> #include<io 阅读全文
posted @ 2021-09-15 19:31 empty_thought 阅读(35) 评论(0) 推荐(0)
摘要: 将若干对象划分为不相交的集合,在每个集合中选择某个元素代表所在集合 可以用编号最小的元素标记,也可以开辟一个数组a[],a[i]代表元素i所在的集合 并查集常见的运算有merge find 数组操作find是O(1)时间,merge是O(n)时间 树状结构,fa[i]代表i的父节点,判断元素是否位于 阅读全文
posted @ 2021-09-15 16:49 empty_thought 阅读(33) 评论(0) 推荐(0)
摘要: vector函数使用需要头文件vector 一、初始化: vector a(10)先给10个空间,不定义也是合法的 vector a(10,1) 10个空间初始化为1 vector a(b) 用向量b拷贝一个向量a vector a(初指针,末指针) 二、重要函数 a.push_back(item) 阅读全文
posted @ 2021-09-15 14:59 empty_thought 阅读(42) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 ··· 10 下一页