摘要: 小引入 如果一个系统由n个变量和m个约束条件组成,形成如xi-xj<=k(ij∈[1, n])的不等式,则称其为查分约束系统。写成一个矩阵形式的不等式组的话则系数有且仅有一个1和一个-1。 解这种不等式组为何会与图论扯上关系呢?在我们求解最短路或者是最长路时会有松弛操作 if(dis[v] > di 阅读全文
posted @ 2019-10-01 11:25 Bankarian 阅读(464) 评论(0) 推荐(0) 编辑
摘要: BCD码实际上就是将原本的十进制数的每一位用一个4位二进制数表示,每一位0-9。 二进制4位能够表达的数字范围是0-15。 由此可见BCD码的一段与普通四位二进制来表示十进制位有6的进制差。所以这就是二进制转化为BCD码的关键所在。下面来讲讲主要步骤: 先预估十进制数的位数,预先给BCD码分好段,此 阅读全文
posted @ 2019-09-25 12:10 Bankarian 阅读(3672) 评论(0) 推荐(0) 编辑
摘要: 递归的复杂度分析的关键点:找到截止条件,列出递推的公式,最后数学化简后再由化简公式化简。 /* Recursion 复杂度计算的关键 --> 找到边界 基本操作的时间均设为c T(n) 执行函数所要消耗的时间 */ // 计算阶乘 普通递归 int func(int n) { if(!n) retu 阅读全文
posted @ 2019-09-18 16:36 Bankarian 阅读(422) 评论(0) 推荐(1) 编辑
摘要: 第四题一般为比较基础的图论,不会太难,但也不会让你做得太舒服,关键是找到模型然后稍微变通下(这里的变通还挺考验对图论中一些基本模型的理解的)。 简化题目的意思,寻找模型,图论有许多的算法,很多时候并不是不会写,而是没有简化出模型,不知用何算法。 同时注意计算结果的范围是否会爆int。 复杂度计算(有 阅读全文
posted @ 2019-09-04 16:08 Bankarian 阅读(657) 评论(0) 推荐(0) 编辑
摘要: 本篇只是非常基础的一些树形结构的入门。 树形结构与链表感觉很类似,只是有分叉的链表。内存不连续,内存之间(节点之间)的联系是通过内存的编号。 很多时候树的题目往往不需要构造出树,只需要就着树的性质灵活模拟。 下面就挑一道感觉比较经典的题~ 原题连接 题目描述: 我们可以把由“000”和“111”组成 阅读全文
posted @ 2019-09-02 21:37 Bankarian 阅读(665) 评论(0) 推荐(0) 编辑
摘要: --由于博主还未系统地学习过数据结构,只是闲时自学,可能理解有误,欢迎指出。 本篇主要通过题目来讲解 链表 基本特性:1)内存一般不连续,一块块连接 2)查找元素较慢,只能通过指针逐个移动查找。但这个缺点一般可以通过数组模拟链表来解决--数组的下标表示不同的内存编号,数组的内容表示该内存的内容,由此 阅读全文
posted @ 2019-08-28 13:43 Bankarian 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 最大流:源点到汇点的流量最大 Dinic基本思想: bfs广搜实现查找多条增广路(可能可以增加流量的路),构建一张层次图。 在bfs找到增广路的前提下多次dfs深搜进行增广直至所有已查找到的增广路用完 优化:当前弧优化: 在每次更新完的层次图中(即每一次bfs完后),dfs每增广完一条路之后,该路的 阅读全文
posted @ 2019-08-25 22:21 Bankarian 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 欧拉筛法: 直接判断素数耗时,换个角度标记非素数,那么没有被标记的就是素数。 关键点: 除2之外的偶数必然不是素数,所以只需要遍历奇数 寻找0-N范围中的素数时,遍历只需要从 2-->sqrt(N+0.5),因为sqrt(N+0.5)之后的数必然在第二层的循环中标记过。 二层循环的意思:一层循环找到 阅读全文
posted @ 2019-08-25 21:00 Bankarian 阅读(230) 评论(0) 推荐(0) 编辑
摘要: unique #include <cstdio> #include <algorithm> #include <iostream> using namespace std; int a[] = { 1, 3, 3, 3, 5, 6, 0, 0, 8, 7, 8}; int main() { // u 阅读全文
posted @ 2019-08-25 09:28 Bankarian 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 二分求解问题类型:有界有序数据区间上的一个最优解 关键点:1)确定上下界 2)解存在的区间为【left,right】,二分时的mid为当前的猜想解,最好用一个变量ans存储每次最优解,以免最终输出的混乱 3)注意终止的范围while(left <= right) 复杂度:logN 栗子:P1316 阅读全文
posted @ 2019-07-26 21:16 Bankarian 阅读(130) 评论(0) 推荐(0) 编辑