摘要:
commit和push的区别 git是支持分布式版本管理的工具,理的库分为本地库和远程库。 commit是将本地修改过的文件提交到本地库中。 push是将本地库中最新的内容提交到远程库。 实战时进行的基本操作 1.查看当前目录下的文件的状态 git status 2.将更改后的文件添加到列表 git 阅读全文
摘要:
前言:近些天看题解总是看到一些容器的用法搞不明白, 比如优先队列为什么写成priority_queue<int,vector<int>,greater<int> > q; 自己对于某些容器还是很陌生,于是翻开了《算法笔记》学习一下。 ###一、set的使用方法 set(集合)是一个内部自动有序的不含 阅读全文
摘要:
并查集适用场景: 快速的判断某个元素属于哪个集合,快速的合并两个集合。</p> 暴力的做法中,查询的复杂度为O(1),合并的复杂度则很高。 在并查集中,并查集的复杂度为接近O(1)。 并查集的特点: 以树的形式来维护一个集合。 根节点的编号就是当前集合的编号。 保存当前节点的父节点。 当查找一个元素 阅读全文
摘要:
#include<bits/stdc++.h> using namespace std; const int N = 150010; int h[N], ver[N], edge[N], ne[N], cnt; int d[N], n, m; bool v[N]; priority_queue<pa 阅读全文
摘要:
#include<bits/stdc++.h> using namespace std; const int N = 510; int m, n, d[N], a[N][N]; bool v[N]; int main(){ cin >> n >> m; memset(a, 0x3f, sizeof 阅读全文
摘要:
用一个数组h[ ]储存图中的节点。 每个节点引出一个链表,表明从这个点连接出去的边。 类似 模拟散列表中的拉链法。 由于树是一个无权图。 所以在建立树时使用add(a, b)和add(b, a)。 ne[ ]表示一个顶点指向的下一个顶点的指针。 e[ ]表示当前节点idx,点的序号。 add(int 阅读全文
摘要:
vector 边长数组,倍增的思想,支持比较运算。 string 字符串,substr(),返回子串,c_str(),返回字符串对应字符数组的头指针。 queue 队列,push(),插入元素,front(),返回队首的元素,pop(),把队首元素弹出。 priority_queue 优先队列,堆, 阅读全文
摘要:
也叫字符串前缀哈希法。 例如字符串“ABCDEFGH”。 用h[0], h[1], h[2]......h[n]分别表示前n个字符的子串的哈希值。 将字符串看作为p进制的数字,再将其mod一个数,得到哈希值。 经验上来说,p一般为131,或13331。 mod的数为2^64。unsigned lon 阅读全文
摘要:
值得注意的是,N应选择一个质数,且N的大小应为数据量的两到三倍。 memset函数在cstring库中,是按字节赋值。 可以将数组所有的值赋为0,-1. 但没办法将值赋为1. #include<iostream> #include<cstring> using namespace std; cons 阅读全文
摘要:
将一个较大的空间映射到一个较小的空间下。 采用数组模拟链表头插法的操作。 e[ ]储存的是插入的元素的值。 h[ ]储存的是插入的元素对应的哈希值的指针。 ne[ ]储存的是当前指针指向的下一个位置的指针。 #include<cstring> #include<iostream> using nam 阅读全文