- 博客(4)
- 收藏
- 关注
原创 前缀和 差分
前缀和算法其实也不算算法,是一种做题技巧,通过使用记录1到n的总和,使用公式来,得出任意区间的和假设 有一个数组 a[1]......a[n];记录他们的每个数1到i的总和 s[i] = s[i-1] + a[i];公式: i 到 j 的和为 ans = s[j] - s[i - 1]代码#include<iostream>using namespace std;const int N = 1e6 + 10;int a[N], s[N];int ma...
2021-08-01 11:19:57
81
原创 便利的位运算
南昌理工acm集训队 当我们利用程序进行运算的时候,计算机里都是运用二进制去计算的,而位运算就是以二进制来计算的,了解二进制也可以帮助我们更好去理解计算机的工作方式。 首先先了解位运算的基本规则 举个例子,当我们进行8 | 4的计算时:8—>01000 8 | 4:0 1 0 0 04—>00100 0 0 1 00 ...
2021-07-23 15:50:40
103
原创 偏移量技巧(c++)
南昌理工acm集训 许多二维的数组题或者二维上的题目都需要去改变指针的走向,一般来说最直接的都是写判断句然后改变方向,但如果用偏移量来控制方向相比下要简单的多。主要思路1:把二维平面作一个直角坐标系。2:往不同方向移动xy的值也会改变。3:而这些偏移量可以记录移动的方向也能控制移动的方向。代表性题目:蛇形矩阵输入两个整数nn和mm,输出一个nn行mm列的矩阵,将数字11到n×mn×m按照回字蛇形填充至矩阵中。具体矩阵形式可参考样例。输入格式...
2021-07-17 11:01:36
1648
原创 快速排序讲解(c++)
南昌理工ACM集训队快排的思想:1:任取一个数作为基数,将其他数与其比较,将大于基数的放在右边,小于的放在左边。2:此时基数将数组分为两部分,然后从左部分再重复步骤1。3:最后输出即可。图解如下:模板代码如下;#include<iostream>using namespace std;const int N=100001;int a[N];void quicksort(int a[],int left,int right){ if
2021-07-10 14:59:05
248
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人