摘要:
1byte = 8bit即1字节=8比特 1个int有4个byte,即32个bit 1个char有1个byte,即8个bit 1个long long有8个byte 1个float有4个byte 1个double有8个byte 题目中的空间限制如64MB,有$64 \times 2^{20} \app 阅读全文
摘要:
一维差分 差分可以看成前缀和的逆运算 构造差分数组b[]的方法: 作用:可以在$O(1)$的时间给区间[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 阅读全文
摘要:
前缀和 前缀和是一种重要的预处理,能大大降低查询的时间复杂度。可以简单理解为“数列的前$n$项的和”。 C++代码: #include <iostream> using namespace std; int N, A[10000], B[10000]; int main() { cin >> N; 阅读全文
摘要:
Trie:高效地存储和查找字符串集合的数据结构 Trie树的存储 比如说要存储下面这些字符串 从根结点开始存 然后若一个结点是一个单词的末尾,则要打上一个标记,从根结点到该结点存在一个单词,图中用五角星表示标记。 这是Trie树的存储。 Trie树的查找 Trie树可以高效地查找某个单词是否出现过以 阅读全文
摘要:
差分约束 ##1. 求不等式组的可行解 对于以上不等式,差分约束可以得到一组可行解。 在最短路中,求完最短路后,对于每个从j->i可以看成一个不等式$x_i \leq x_j + c$ 说通俗点就是给我们一个图,我们可以把每条边看成一个不等式,我们在这个图上求每个点到源点的最短距离,求完之后,每个边 阅读全文
摘要:
组合数公式:(图来自百度百科) 1.迭代法(预处理)求组合数 适用于$C_ab$中$a$ 和$b$不是很大的情况,**一般$1 \leq a,b \leq 104$** 所以可以直接预处理出来$C_a^b$,用的时候直接查表即可。 #include <iostream> using namespac 阅读全文