算法

手指树的基本结构

手指树的基本结构一、简介手指树(FingerTree)是一种纯函数式数据结构,由RalfHinze和RossPaterson提出。二、为什么需要手指树?在函数式编程中,列表是十分常见的数据类型。对于基于序列的操作,包……

区间DP实例讲解

区间DP实例讲解一、什么是区间DP?顾名思义:区间DP就是在区间上进行动态规划,求解一段区间上的最优解。主要是通过合并小区间的最优解进而得出整个大区间上最优解的DP算法。二、核心思路既然让我求解在一个区间上的最优解,……

自动机(确定有限状态自动机)

自动机(确定有限状态自动机)这里的“自动机”指的是”确定有限状态自动机”。而自动机是信息学奥林匹克竞赛、计算机科学中被广泛使用的一个数学模型,其思想在许多字符串算法中都有涉及,学习……

Alpha-Beta剪枝搜索图文讲解

Alpha-Beta剪枝搜索图文讲解本篇将简要介绍α-β剪枝,这是一种基于剪枝(α-βcut-off)的深度优先搜索(depth-firstsearch)。一、什么是α剪枝?(1)……

Python递归算法

Python递归算法        我们在前面学习过递归函数,递归函数采用的……

哈夫曼树编码与查找算法(C语言实现)

哈夫曼树编码与查找算法(C语言实现)1.哈夫曼树的查找算法查找算法根据构建哈夫曼树算法衍生而来,我们在构建二叉树时需要查找出哪些数据最小,以符合我们哈夫曼树的最优解情况。查找权重值最小的两个结点的思想是:从待处理数据的头部位置开始,首先……

C/C++如何加速输入输出效率(上)

C/C++如何加速输入输出效率(上)1.简介遇到大数据时,往往读写文件成了程序运行速度的瓶颈,需要更快的读取方式。相信几乎所有的C++学习者都在cin机器缓慢的速度上栽过跟头,有很多案例中提供几个数据,却在后台测评却提供了近千,近万的数……

二维计算几何基础

二维计算几何基础什么是“二维计算几何”?当我们将需要解决的几何问题的范围限制在二维平面内,这样就用到了二维计算几何。要用电脑解平面几何题?这就是陷入误区了,我们并不是用计算机算数学卷子上的几何……

树的基础知识

树的基础知识一、什么是树树是一种类似链表的数据结构,不过链表的结点是以线性方式简单地指向其后继指点,而树的一个结点可以指向许多个结点。树是一种典型的非线性结构。树结构是表达具有层次特性的图结构的一种方法。二、相关……

什么是线性DP?

什么是线性DP?一、什么是线性?越是基础的概念,越应该有一个透彻的理解,才能对上层问题有直接了当的理解。比如对线性分割器,你对线性有透彻的理解,一看这个名字就大概知道它是怎么回事了。1.几何理解:线性关系就是直线关系……