C++
猪突猛进!
这个作者很懒,什么都没留下…
展开
-
C++标准模板库(STL)学习记录 Part 1
1.vector的常见用法详解PATA-1039 Course List for StudentPATA-1047 Student List for Course1.1 vector的定义 vector<typename> name; 如果typename是一个STL容器,定义的时候要记得>>符号之间加上空格,因为一些使用C++11之前标准编译器会把...原创 2018-02-26 12:46:29 · 252 阅读 · 0 评论 -
《算法笔记》学习记录 Part 6 字符串专题
第十二章 字符串专题12.1 字符串hash进阶字符串hash是将一个字符串S映射为一个整数,使得该整数可以尽可能唯一地代替字符串S。使用散列函数,H[i] = ( H[i-1] * 26 + index(str[i]) ) % mod通过这种方式把字符串转换成范围上能接受的整数,在实践中发现,在int数据范围内,如果把进制数设为为一个10^7级别的素数p(如10000019),同时把mod设置...原创 2018-03-04 22:33:00 · 294 阅读 · 0 评论 -
《算法笔记》学习记录 Part 5 动态规划
第十一章 动态规划专题11.1 动态规划的递归写法和递推写法动态规划(Dynamic Programming,DP)是一种用来解决一类最优化问题的算法思想。简单来说,动态规划将一个复杂的问题分解成若干个子问题,通过综合子问题的最优解来得到原问题的最优解。需要注意的是,动态规划会将每个求解的子问题的解记录下来,这样当下一次碰到同样的子问题时,就可以直接使用之前的记录的结果,而不是重复计算一般可以使用...原创 2018-03-03 15:22:21 · 304 阅读 · 0 评论 -
第十章 数据结构专题 —— 图(下)
第十章 数据结构专题 —— 图(下)10.6 拓扑排序如果有一个有向图的任意顶点都无法通过一些有向边回到自身,那么称这个有向图为有向无环图(Directed Acyclic Graph,DAG)拓扑排序是将有向无环图G的所有顶点排成一个线性序列,使得对图G的任意两个顶点u、v,如果存在边u->v , 那么在序列中u一定在v前面。这个序列又称为拓扑序列。vector <int>...原创 2018-03-03 15:10:45 · 279 阅读 · 0 评论 -
《算法笔记》学习记录 Part 4 图(中)
第十章 数据结构专题 —— 图(中)10.4 最短路径对任意给出的图G(V,E)和起点S、终点T,如何求S到T的最短路径,解决最短路径问题的常用算法有Dijkstra算法,SPFA算法、Bellman-Ford算法、Floyd算法10.4.1 Dijkstra算法Dijkstra算法用来解决单源最短路径问题,即给定图G和起点S,通过算法得到S到其他每个顶点的最短距离。const int MA...原创 2018-03-03 12:29:43 · 235 阅读 · 0 评论 -
《算法笔记》学习记录 Part 4 图(上)
第十章 数据结构专题 —— 图(上)10.1 图的存储10.1.1 邻接矩阵设图G(V,E)的顶点标号为0,1,……,N-1,那么可以令二维数组G[N][N]的二维分别表示图的顶点标号,即如果G[i][j] = 1,则说明顶点i和顶尖j之间不存在边,而这个二维数组G[][]则被称为邻接矩阵,如果存在边权,令G[i][j]存放边权,对不存在的边可以设边权为0、-1、INF10.1.2 邻接表设...原创 2018-03-02 17:39:54 · 197 阅读 · 0 评论 -
《算法笔记》学习记录 Part 3 树(下)
第九章 数据结构专题 —— 树(下)9.7 堆 9.7.1 堆的定义与基本操作堆是一颗完全二叉树,树中的每个结点都不小于(或不大于)其左右结点孩子结点的值,分为大根堆和小根堆由于是完全二叉树,可以使用数组储存const int maxn = 100;//heap为堆,n为元素个数int heap[maxn],n=10;//对heap数组在[low,high]范围进行向下调整void...原创 2018-03-02 14:27:34 · 150 阅读 · 0 评论 -
《算法笔记》学习记录 Part 3 树(中)
第九章 数据结构专题 —— 树(中)9.4 二叉查找树(BST)9.4.1 BST的递归定义:1)要么二叉查找树是一颗空数2)要么二叉查找树由根节点、左子树、右子树组成,其中左子树和右子树都是二叉查找树,且左子树上所有结点的数据域均小于或等于根节点的数据域,右子树上所有结点的数据域均大于根结点的数据域。9.4.2 BST的基本操作查找操作void search(node* root,int ...原创 2018-02-28 23:06:28 · 189 阅读 · 0 评论 -
《算法笔记》学习记录 Part 3 树(上)
第九章 数据结构专题 —— 树(上)ps 往后的部分已代码为主,具体的实现逻辑和知识点在大学上课和考研里都复习了,但是一直没有动手敲,理解的很肤浅9.1 二叉树的存储结构与基本操作9.1.2 定义:struct node{ int data; //数据域 node* lchild; node* rchild;};由于在二叉树建树前根节点不存在,因此其地址一般设为NULLnode* ...原创 2018-02-28 16:03:15 · 201 阅读 · 0 评论 -
《算法笔记》 学习记录汇总目录
Part 1第一章 ~ 第二章 C/C++快速入门Part 2第三章 ~ 第四章 入门篇 传送门简单模拟,查找元素,图形输出,日期处理,进制转换,字符串处理排序,散列,递归,贪心,二分,tow pointers,其他高效技巧与算法Part 3第五章 数学问题 传送门Part 4第六章 C++标准模板库(STL)介绍 vector set strin...原创 2018-02-27 19:36:32 · 586 阅读 · 0 评论 -
C++ 数据结构 —— 链表
题目:PAT-A 1074 Reversing Linked ListPAT-A 1032 SharingPAT-A 1052 Linked List SortingPAT-A 1097 Deduplication on a Linked List1. 链表的定义struct node{ typename data; //数据域 node* next; //指针域};2. 使用mall...原创 2018-02-27 19:16:37 · 233 阅读 · 0 评论 -
C++标准模板库(STL) 学习记录 Part3
8. algorithm头文件下的常用函数8.1 max() min() abs() swap() abs(x)返回x的绝对值,但是x必须是整数,浮点型的绝对值请用math头文件下的fabs swap(x , y)用来交换x和y的值8.2 reverse() reverse( it , it2 ) 可以将数组指针在 [ it , it2 )之间的元素或容器的迭代器...原创 2018-02-26 23:00:09 · 167 阅读 · 0 评论 -
C++标准模板库(STL) 学习记录 Part2
5. queue的常见用法详解 5.1 queue(队列)的定义 queue<typename> name;5.2 queue容器内元素的访问 队列本身就是一种先进先出的限制性数据结构,因此只能通过 q.front() 和 q.back() 来访问队首 队尾元素,时间复杂度为O(1)5.3 queue常用函数解析(1)push(x)将x进行入队(2)front() 和 ba...原创 2018-02-26 22:47:12 · 178 阅读 · 0 评论 -
PATA1100.Mars Numbers
题目链接:点击打开链接知识点笔记: 题目中是整行输入,scanf("%d%*c",&n),另外cin是以空格结尾,getline是以回车结尾 由于题目的数只有两位,即0~168,所以直接可以打表实现 AC代码:#include <iostream>#include <string>#include <map>...原创 2018-03-14 14:40:23 · 215 阅读 · 0 评论