文章分类 - 数据结构与算法
摘要:PAT常用STL-set set容器内部不包含重复元素并且自动排序。 set常用操作 #include<cstdio> #include<set>//vector类型头文件 using namespace std;//使用STL容器必须添加此句 int main() { set<int> a; a.
阅读全文
摘要:PAT常用STL-map map作为存储**<键-值>**映射关系的容器,可以很方便地根据键提取值,或者根据值来查找键。 map的常用操作 #include<cstdio> #include<map>//map类型头文件 #include<vector>//vector容器 using namesp
阅读全文
摘要:PAT常用STL-vector vector一般用作变成数组,可以方便地实现PAT中结果最后一个地方不许有空格的要求。 vector常用操作 #include<cstdio> #include<vector>//vector类型头文件 using namespace std;//使用STL容器必须添
阅读全文
摘要:常用操作 输入 #include<iostream> #include<string> using namespace std; int main() { string a; cin>>a;//不读空字符 cout<<"a="<<a<<endl; string b; getline(cin,b);/
阅读全文
摘要:基本定义 堆是一个完全二叉树,可以用数组来映射这个树。 建立堆就是根据一个已知的未排序的数组,根据建堆的规则,将数组中的元素按照一定规则重新排列而已 堆的分类 大根堆:根结点是最大的元素,每个结点都大于等于其左右孩子结点 小根堆:根结点是最小的元素,每个结点都小于等于其左右孩子结点
阅读全文
摘要:PAT知识点-并查集 定义 const int MAX=1010; int father[MAX];//father[i]表示节点i的父亲 初始化 void init(int n) { for(int i=1;i<=n;i++)//这里假设节点序号为1到n { father[i]=i;//规定根节点
阅读全文
摘要:PAT知识点-二叉查找树 二叉查找树 定义 struct Node//代表树的一个结点 { int data;//数据域 Node *lchild;//左孩子 Node *rchild;//右孩子 }; 结点的创建 Node *newNode(int data) { Node *node=new N
阅读全文
摘要:PAT知识点-树的基本操作 树的数据结构 二叉树 一般的度为2的树是不考虑左右子树的顺序的,也就是说,左右子树交换对该树没影响。但是!二叉树是规定左右子树顺序的!左右子树交换后就是另一个二叉树了!左右子树的交换方法下面会讲,就是在后序遍历的时候交换左右子树。 struct Node { int da
阅读全文
摘要:PAT题目中常用的库函数 ctype.h isdigit(int ch) 是数字返回非零,否则返回0 isalpha(int ch) 是字母返回非零,否则返回0 isalnum(int ch) 是数字或字母返回非零,否则返回0 islower(int ch) 是小写字母返回非零,否则返回0 isup
阅读全文
摘要:PAT降低程序运行时间的办法(C/C++) 刷了100题左右,总结了一些用于降低程序运行时间的办法 0.解题的思路是简单的 解题思路想的好,对题目是降维打击,什么也抵不上一个简单解决问题的思路。 1.使用复杂度更低的算法 对于同一个思路可能有多种算法,选择时间复杂度低的算法。这得看自己有没有学过更好
阅读全文
摘要:PAT中常用数据类型及输入输出(C/C++) 常用数据类型 bool int double long long long 数据类型范围 最大大概为20亿 最大大概为 #include<cstdio> int main() { int intmax=(1<<31)-1; int intmin=-(1>
阅读全文
摘要:PAT常见错误及原因总结 答案错误 因为解题思路不对而造成的答案错误暂且不说,除了解题思路不对还有可能是以下原因: 数值溢出 这个是最不容易注意到的地方,因为int的范围大概为20亿,以下的情形需要用long long代替: 要处理的数据大小可能大于20亿。此时,要处理的数据要用long long代
阅读全文
摘要:PAT中测试数据的输入技巧 把测试数据给正确的输入程序中,是做题的开始。有时候在输入测试数据就费了很长时间,所以在此总结一些麻烦的地方及输入技巧。 1.空格的麻烦 在此说明几个知识点 用scanf输入int、long、long long、float、double忽略空格、回车 #include<cs
阅读全文
摘要:PAT中较难的固定操作 大整数的运算 #include<cstdio> #include<cstring> struct Bn//bignumber { int n[50];//最大设为50位 int len;//数字的长度 Bn() { memset(n,0,sizeof(n));//全部设为0,
阅读全文
摘要:PAT中常用基本操作 在刷了100道题后,发现有些操作真的是反反复复被用到,在此总结一下,把这些基操练习足够熟,相信对编程基本能力提升有帮助。 数组的操作 寻找最大/最小值其下标 #include<cstdio> int main() { int a[5]={4,88,-12,1999,0}; //
阅读全文