摘要: 结点拥有的子树数目称为结点的度要判断是否是一个链:每个点的度数不超过2多叉树转化为二叉树/森林转化为二叉树:根节点的第一个子节点作为左节点,其他子节点作为新左节点的右子节点。其他树放到上一棵树根节点右子节点的位置上。 二叉树 二叉树的性质: 1)在二叉树的第i层上最多有2i-1 个节点 (i>=1) 阅读全文
posted @ 2020-10-07 19:18 太山多桢 阅读(214) 评论(0) 推荐(0)
摘要: C风格表示的字符串,借助字符数组来存放,并在最后一位有'\0'标志字符串结束,因此字符数组声明时要开大一点。而string可以认为是元素为字符的容器,大小可变,并且结尾不需要以'\0'结束。 string和char数组都可以使用cin、cout。但是string不能直接使用scanf、printf、 阅读全文
posted @ 2020-10-07 19:14 太山多桢 阅读(120) 评论(0) 推荐(0)
摘要: cin、cout使用方便,但是除了遇到字符串、较复杂的读入,且输入量不大的情况时,不考虑使用。在添加语句“ios::sync_with_stdio(false);”之后,效率可以与scanf、printf相近,但是VC编译对此是不敏感的(只能平时练习时使用,大部分比赛和常见OJ是不支持的...... 阅读全文
posted @ 2020-10-07 19:06 太山多桢 阅读(140) 评论(0) 推荐(0)
摘要: 设有一个有向无环图(DAG图),对其进行拓扑排序即求其中节点的一个拓扑序列,对于所有的有向边(U,V),在该序列中节点U都排在节点V之前。满足该要求的节点序列,被称为满足拓扑次序的序列 拓扑次序将图限定在有向无环图上。若无向或是有环,各节点之间的先后关系不能确定。 简单描述一下拓扑排序的算法:从图中 阅读全文
posted @ 2020-10-07 19:04 太山多桢 阅读(258) 评论(0) 推荐(0)
摘要: 图论部分经常讨论的问题,寻找图中两个特定节点之间最短路径的长度。要解决这类问题需要根据实际情况选择合适的算法 Floyd算法,时间复杂度为O(n3),空间复杂度O(n2),配合邻接矩阵使用。当算法完成后,所有节点对之间的最短路径都会被确定,因此适用于全源最短路问题。由于时间复杂度的限制,一般不太能使 阅读全文
posted @ 2020-10-07 18:59 太山多桢 阅读(220) 评论(0) 推荐(0)
摘要: 并查集应用相当广泛,之前学习过但是现在又遗忘了......在此做一个整理记录。首先是并查集的模板,参考洛谷P3367,以下为代码: #include<bits/stdc++.h> using namespace std; int n,m; int root[10005]; int getRoot(i 阅读全文
posted @ 2020-10-07 18:56 太山多桢 阅读(159) 评论(0) 推荐(0)
摘要: 搜索问题,首先需要表示出题目的状态空间,即初始状态、可达状态和终结状态,并确定它们之间的转移条件。之后需要确定合适的搜索方式,这个搜索方式需要保证可以到达所有的可达情况而且没有死循环。最后,估计复杂度酌情剪枝或改变搜索方式。 关键在于:表示出完整的状态空间,根据状态空间大小估计时间复杂度,选择合适的 阅读全文
posted @ 2020-10-07 18:40 太山多桢 阅读(271) 评论(0) 推荐(0)