2020 寒假记录(二) 知识点:二分,区间搜索数的范围https://www.acwing.com/problem/content/791/二分#include <iostream>#include <cstring>#include <cmath>using namespace std;int arr[100010];int main() { ...
2020 寒假记录(一) 知识点:DFS、枚举费解的开关https://vijos.org/p/1197当第 \(i\) 行的状态确定了之后,只有第 \(i+1\) 行可以影响它,也就是翻完第一行后,后面每一行的操作也就是确定的了,所以枚举第一行的32种状态即可。深搜#include <iostream>#include <algorithm>#include <cst...
winForm 使用List<T> 绑定 DataGridView.DataSource ,无法正常显示 winForm 使用 List<T> 绑定 DataGridView.DataSource ,无法正常显示。\(\color{red}{如果直接用类的字段等来显示,则无法显示数据,要用类的属性才能正常显示。}\)这样显示不了。class Student { public string Name; public string Age...
PAT (Basic Level) 乙组全题记录 前后12天,乙组的所有题目算是刷完了,总体感觉不太难,偶尔有一两道题卡了一会也是审题不清、特殊数据,或者一些逃不掉的坑,但收获依然不少,明白了“永远要用最大的恶意去揣测出题人”,也改掉不少坏习惯,甲组的题目寒假才有时间继续做了。2020.3月,PAT 干。1001 害死人不偿命的(3n+1)猜想#include <iostream>using namespace std...
数据结构篇——字典树(trie树) 引入现在有这样一个问题, 给出\(n\)个单词和\(m\)个询问,每次询问一个单词,回答这个单词是否在单词表中出现过。好像还行,用 map<string,bool> ,几行就完事了。那如果n的范围是 \(10^5\) 呢?再用 \(map\) 妥妥的超时,说不定还会超内存。这时候就需要一种强大的数据结构——字典树基本性质字典树,又叫Trie树、前缀树,用于统计,排...
分组密码体制【密码学笔记】 分组密码的基本概念 分组密码在加密过程中不是将明文按字符逐位加密,而是首先要将待加密的明文进行分组,每组的长度相同,然后对每组明文分别加密得到密文。加密和解密过程采用相同的密钥,称为对称密码体制。 例如将明文分为\(m\)块:\(P_{0},P_{1},P_2,…,P_{m-1}\),每个块在密钥作用下执行相同的变换,生成\(m\)个密文块:\(C_0,C_1,C_2,…,C_{...
数据结构篇——并查集 基本概念 并查集是一种维护集合的数据结构,“并”,“查”,“集” 三个字分别取自 Union(合并),Find(查找),Set(集合)。并查集是若干个不相交集合,能够在 \(O(1)\) 实现两个集合的合并,判断两个元素是否属于同一集合应用,如其求无向图的连通分量个数、实现kruskal算法求最小生成树。并查集的实现方法就是一个数组:int pre[N];其中 pre[i] 表...
数据结构篇——优先级队列(堆) 基本性质 优先级队列,也叫二叉堆、堆(不要和内存中的堆区搞混了,不是一个东西,一个是内存区域,一个是数据结构)。 堆的本质上是一种完全二叉树,分为:最小堆(小根堆):树中每个非叶子结点都不大于其左右孩子结点的值,也就是根节点最小的堆,图(a)。最大堆(大根堆):树中每个非叶子结点都不小于其左右孩子结点的值,也就是根节点最大的堆,图(b)。基本操作均以大根堆为例存储...
基本代数概念与有限域下的椭圆曲线【密码学笔记】 群群G(group)是指由一个集合和一个二元运算 \(*\) (这里的 \(*\) 不是指乘法)构成的代数系,含有以下四个性质群在 \(*\) 下的运算是封闭的对于任意G中的两个元素,\(a\) 和 \(b\),\(a*b\) 也是 \(G\) 中的一个元素。群中有一个元素 \(e\),称为单位元对于群中的每个元素 \(a\) 都满足 \(a*e=e*a\)群中每个...
数据结构篇——平衡二叉树(AVL树) 引入上一篇写了二叉排序树,构建一个二叉排序树,如果构建序列是完全有序的,则会出现这样的情况:显然这种情况会使得二叉搜索树退化成链表。当出现这样的情况,二叉排序树的查找也就退化成了线性查找,所以我们需要合理调整二叉排序树的形态,使得树上的每个结点都尽量有两个子结点,这样整个二叉树的高度就会大约在\(log(n)\) 左右,其中 \(n\) 为结点个数。基本性质 AVL树也称为...
数据结构之树篇3——平衡二叉树(AVL树) 引入上一篇写了二叉排序树,构建一个二叉排序树,如果构建序列是完全有序的,则会出现这样的情况:显然这种情况会使得二叉搜索树退化成链表。当出现这样的情况,二叉排序树的查找也就退化成了线性查找,所以我们需要合理调整二叉排序树的形态,使得树上的每个结点都尽量有两个子结点,这样整个二叉树的高度就会大约在\(log(n)\) 左右,其中 \(n\) 为结点个数。基本性质 AVL树也称为平...
数据结构篇——二叉排序(查找,搜索)树 引入基本性质:二叉排序树(又叫二叉搜索、查找树) 是一种特殊的二叉树,定义如下:若左子树不空,则左子树上所有结点的值均小于它的根结点的值;若右子树不空,则右子树上所有结点的值均大于它的根结点的值;左、右子树也分别为二叉排序树。不允许有键值相同结点。【如果真的出现了,那么放在左子树,右子树是无所谓的】二分查找与二叉排序树 二分查找也称为折半查找,要求原线性表有序,它...
数据结构之树篇2——二叉排序(查找,搜索)树 引入基本性质:二叉排序树(又叫二叉搜索、查找树)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;若右子树不空,则右子树上所有结点的值均大于它的根结点的值;左、右子树也分别为二叉排序树。不允许有键值相同结点。二分查找与二叉排序树 二分查找也称为折半查找,要求原线性表有序,它是一种效率很高的查找方法。如果在需要进行频繁修改的表中采用二分查找,其效率也是非常低下...
数据结构篇——二叉树 引入在数据结构中,将现实生活中的树根抽象为根节点(Root)树叉抽象为结点(Node),将叶子抽象为(Leaf),将树枝抽象为边(Edge),且一条边只用来连接两个结点,互为父子节点。二叉树的性质二叉树树可以没有结点,这种情况下把树称为空树。树的层次从根节点开始算,即根节点算第\(1\)层。【也有的教材规定根结点在第\(0\)层,这里全部以\(1\)层为准】把结点...
数据结构之树篇1——二叉树 性质基本性质:二叉树_百度百科关于二叉树的深度(高度)涉及到结点的层数,有的教材规定根结点在第\(0\)层,有的则规定根结点在第\(1\)层。这里全部以《数据结构-C语言版》(严蔚敏,吴伟民版)为准:高度和深度为同一个概念,根节点在第1层,树的高度是看一共有几层。 高度为\(h\)的完全二叉树,最多有\(2^{n}-1\)个节点,第\(k\)层最多有\(2^{k-1}\)个节点。 ...
图论篇6——割点(关节点) 引入连通图 在一个**无向图**$G$中,若从顶点$i$ 到顶点$j$有路径相连,则称 $i$和$j$是连通的。如果图中任意两点都是连通的,那么图被称作连通图。如果$G$是有向图,则称为强连通图(注意:需要双向都有路径)。如果是单向连通,则称$G$为单向连通图。割点(关节点) 在无向连通图$G=(V,E)$中: 若对于$x\in V$, 从图中删去节点$x$以及所有与...
图论篇5——关键路径 引入AOE网和AOV网 上一篇的拓扑排序中提到了AOV网(Activity On Vertex Network),与之相对应的是AOE网(Activity on edge network),即边表示活动的网。 AOV用顶点表示活动的网,描述活动之间的制约关系。 AOE是带权值的有向图,以顶点表示事件,以边表示活动,边上的权值表示活动的开销(如项目工期)。AOE ...
图论篇4——拓扑排序 引入有向无环图(DAG) 如果一个有向图不存在环,也就是任意结点都无法通过一些有向边回到自身,那么称这个有向图为有向无环图。AOV网络 在有向图中,用顶点表示活动,用有向边$< V_i, V_j >$表示活动 $i$ 是活动 $j$ 的必须条件。这种有向图称为用顶点表示活动的网络(Active on vertices),简称AOV网络。在AOV网络中...
数论篇7——组合数 & 卢卡斯定理(Lucas) 组合数组合数就是高中排列组合的知识,求解组合数C(n,m),即从n个相同物品中取出m个的方案数。求解方式求解通式:$C^{m}_{n}=\dfrac {n!}{m!\left( n-m\right) !}$性质1:$C^{m}_{n}=C_{n}^{n-m}$性质2:$C^{m}_{n}=C^{m-1}_{n-1}-i+C^{m}_{n-1}$打表递推根据性质...
图论篇3——最短路径 Dijkstra算法、Floyd算法 最短路径问题背景:地图上有很多个城市,已知各城市之间距离(或者是所需时间,后面都用距离了),一般问题无外乎就是以下几个:从某城市到其余所有城市的最短距离【单源最短路径】所有城市之间相互的最短距离【任意两点最短路径】各城市距离一致,给出需要最少中转方案 【最少中转】深度优先搜索适用范围:啥都不适用,只能处理n<10的情况深搜求最短路径的思想和用深搜...