![](https://img-blog.csdnimg.cn/20190918140053667.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
基本算法
基础算法
Charming Boy
苟有恒,何必三更眠五更起;
最无益,莫过一日曝十日寒。
展开
-
位运算
文章目录位运算类型常用操作原码、反码、补码位运算类型位运算是在二进制中的运算方式,其他进制的数在进行位运算时都要先转化成二进制。位运包括按位与(&)、按位或(|)、按位异或(^)、取反( ~ )、左移(<<)、右移(>>).其中除了取反(~),其他都是双目运算符(运算符左右都有一个运算量)按位与(&)1 & 1 = 11 &...原创 2020-02-12 17:17:56 · 223 阅读 · 0 评论 -
一维差分、差分矩阵
文章目录差分二维差分(差分矩阵)差分差分是一种支持进行区间大量修改的操作,其实就是前缀和的逆运算,例如数组a[6] = {1,2,3,4,5,6},b[6] = {1,1,1,1,1,1} ,b[i] = a[i] - a[i - 1],可以得出:a[1] = b[1],a[2] = b[1] + b[2],…;b[i]的前缀和等于a[i],这所以说,差分就是前缀和的逆运算。例题:输入一个...原创 2020-02-10 14:34:31 · 598 阅读 · 0 评论 -
一维、二维前缀和
一维前缀和输入一个长度为n的整数序列。接下来再输入m个询问,每个询问输入一对l, r。对于每个询问,输出原序列中从第l个数到第r个数的和。输入格式第一行包含两个整数n和m。第二行包含n个整数,表示整数数列。接下来m行,每行包含两个整数l和r,表示一个询问的区间范围。输出格式共m行,每行输出一个询问的结果。数据范围1≤l≤r≤n,1≤n,m≤100000,−1000≤数列中...原创 2020-02-10 11:21:05 · 291 阅读 · 0 评论 -
高精度算法
当就算是long long(或int64)还不够怎么办?用高精度算法。自己动手丰衣足食。——洛谷hh文章目录高精度加法高精度减法高精度乘法(洛谷)高精度乘低精度高精度除法(高精/低)高精度加法#include<iostream>#include<vector>using namespace std;//C = A + B;vector<int> a...原创 2020-02-10 10:42:24 · 291 阅读 · 0 评论 -
二分查找及模板
文章目录整数二分实数二分整数二分整数二分分为两种,根据取mid位置的不同,不断更新 l 和 r 即可区间[l,r]被划分成[l,mid]和[mid+1,r]时int search_1(int l,int r){ while(l < r) { int mid = (l + r)/2; if(check(mid)) r=mid;//check()判断mid是否满...原创 2020-02-03 20:18:00 · 175 阅读 · 0 评论 -
明明随机数,快排,去重
题目链接:https://www.luogu.com.cn/problem/P1059这个题算是快速排序的一个练习吧(不用STL sort()的情况下),可以熟悉快速排序的模板#include<iostream>#include<cstdio>using namespace std;const int N = 1e6+10;int n,sum;int q[N...原创 2020-02-03 20:16:26 · 308 阅读 · 0 评论