09 2021 档案
摘要:一维差分 差分可以看成前缀和的逆运算 构造差分数组b[]的方法: 作用:可以在的时间给区间[l, r]内的数都加上一个数c 模板题:AcWing 797. 差分 #include <iostream> using namespace std; const int N = 1e5 + 10
阅读全文
摘要:试除法判断质数 bool is_prime(int x) { if (x < 2) return false; for (int i = 2; i <= x / i; i ++ ) if (x % i == 0) return false; return true; } 试除法分解质因数 void
阅读全文
摘要:图的存储 树是一种特殊的图,与图的存储方式相同。 对于无向图中的边ab,存储两条有向边a->b, b->a。 因此我们可以只考虑有向图的存储。 (1) 邻接矩阵:g[a][b] 存储边a->b (2) 邻接表: // 对于每个点k,开一个单链表,存储k所有可以走到的点。h[k]存储这个单链表的头结点
阅读全文
摘要:单链表 // head存储链表头,e[]存储节点的值,ne[]存储节点的next指针,idx表示当前用到了哪个节点 int head, e[N], ne[N], idx; // 初始化 void init() { head = -1; idx = 0; } // 在链表头插入一个数a void in
阅读全文
摘要:快速排序 while写法 #include <iostream> using namespace std; const int N = 1e5 + 10; int n; int q[N]; void quick_sort(int q[], int l, int r) { if(l >= r) ret
阅读全文
摘要:前缀和 前缀和是一种重要的预处理,能大大降低查询的时间复杂度。可以简单理解为“数列的前项的和”。 C++代码: #include <iostream> using namespace std; int N, A[10000], B[10000]; int main() { cin >> N;
阅读全文
摘要:Trie:高效地存储和查找字符串集合的数据结构 Trie树的存储 比如说要存储下面这些字符串 从根结点开始存 然后若一个结点是一个单词的末尾,则要打上一个标记,从根结点到该结点存在一个单词,图中用五角星表示标记。 这是Trie树的存储。 Trie树的查找 Trie树可以高效地查找某个单词是否出现过以
阅读全文
摘要:差分约束 ##1. 求不等式组的可行解 对于以上不等式,差分约束可以得到一组可行解。 在最短路中,求完最短路后,对于每个从j->i可以看成一个不等式 说通俗点就是给我们一个图,我们可以把每条边看成一个不等式,我们在这个图上求每个点到源点的最短距离,求完之后,每个边
阅读全文