- 博客(12)
- 收藏
- 关注
原创 向量简述
1 定义 向量,指具有大小和方向的量。2 向量的记法:印刷体记作粗体的字母(下文所有未说明的字母都为向量),书写时在字母顶上加一小箭头“→”3 向量的长度叫做向量的模。符号是|...| (形同绝对值符号)模为0的向量是零向量(方向不确定),模为1的向量是单位向量4 向量的加减法:(如图)加法:1 首位相接,结果是从第一个始点到最后一个终点
2017-12-31 21:01:40 2139
原创 线段树
动态区间最小值#include <iostream>#include <cstdio>using namespace std;#define MAX_LEN 100010//维护最小值的线段树 int A[MAX_LEN];int S[MAX_LEN]; //S[i]存储结点i的询问信息 void Build(int o, int l, int r) { ...
2017-12-21 17:27:31 179
原创 二分答案法
当一题求符合要求最小值或最大值,并且答案的范围可以确定时,可以使用二分答案法。二分答案题的关键在于检验结果是否符合要求.二分答案有多种写法写法一 (同NOIP2017初赛试题的写法):结果是mid.- 找最大值l = min_ans, r = max_ans;while(l < r) { mid = (l + r + 1) / 2;
2017-12-21 10:33:56 383
原创 RMQ与SparseTable(ST表)
静态区间最值问题(RMQ)ST表。#include using namespace std;int N, Q;int D[(1<<17)][17];int A[(1<<17)];void RMQ_INIT() { for(int i=1; i<=N; i++) D[i][0] = A[i]; for(int j=1; (1<<j)<=N; j++) f
2017-12-19 15:35:56 300
原创 动态规划-数的划分
数的划分有很多种,也可以列为DP的一种模型了吧(一)数的划分 成R份(不可空)整数N,划分成R份,每份不可空,求方法总数【解法】分为有1和没有1两种情况i划分成j份的方法总数是以下两种情况之和(1) 没有1的分法:每份取走一个1, 剩下的i-j分成j份(2) 至少有一个1的分法:取走一份是1的,剩下的i-j分成j-1份#include
2017-12-03 20:32:15 949
原创 数论-扩展欧几里得算法
扩展欧几里得算法已知(a, b)求解(p, q), 使得p * a + q * b = GCD(a, b);一定有解;因为GCD(a, b) = GCD(b, a%b)所以p * a + q * b = GCD(a, b)= GCD(b, a%b)= p * b + q * a % b= p * b + q * (a - a/b * b)= p * b +
2017-12-02 11:42:53 432 1
原创 树状数组 BIT
树状数组:用来求数组中的连续和 从一般O(n)优化到 - O(log n)【方法】重新构造一个c[],用来控制读入的原数组a[](是某些数据的和)怎么控制?如果它二进制末尾0个数用k表示,c[i]控制的数共2^k个数,从a[i]开始,a[i-1],a[i-2]...举例:c[1] = a[1];c[2] = a[2] + a[1];
2017-12-01 22:29:37 294
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人