输入输出 简单写法 数据量不大: Scanner sc = new Scanner(System.in); int a = sc.nextInt(); char op = sc.nextLine().charAt(0); 如果比较大可以换: Scanner sc = new Scanner(new …
STL 常用操作 1. vector 1.1 声明 #include <vector> // 头文件 vector<int> a; // 相当于一个长度动态变化的int数组 vector<int> b[233]; // 相当于第一维长233,第二位长度动态变化的i…
4.1 质数 概念 质数又称素数,一个大于$1$的自然数,除了$1$和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数) 4.1.1 试除法判定质数 思想 $N<2$不是质数 从$i=2$开始枚举,直到$\sqrt{n}$,若$i$能被$N$整除,说明不是质…
3.1 简单搜索 分类 DFS BFS A* (BFS+贪心) 双向广搜 双端队列广搜 双向DFS IDDFS (DFS+BFS) IDA* (IDDFS优化) 3.1.1 BFS 思想 当题目需要对一组数据进行扩展式搜索时可以考虑BFS 搜索时要将已经满足要求的点入队 不断地弹出队头,以队头元素进…
2.1 链表 2.1.1 单链表 概念: 链表是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的 链表由一系列结点组成,每个结点中分为存储数据元素的数据域和存储下一个结点的指针域 操作思想 插入:新建一个结点,改变前一个结点的指针指向新建的结点 删除:将删除结点的前…
1.1快速排序 思想: 先取一个中间的任意值x,将需要排序的序列划分为左右两个区间 以递增为例,使得左区间的数都满足q[i]<=x右区间的数都满足q[i]>=x 然后对左右两个区间分别排序最终得到递增序列 模板 int q[N]; //q[N]为需要排序的序列,需初始化为全局变量 voi…