ZingLix Blog

凡心所向,素履以往

最小生成树算法

Kruskal & Prim's Algorithm

基本概念 在一张图 \(G=(V,E)\) 中,能够连接 \(G\) 中所有结点的树,称之为生成树,又因为每条边都具有权重,所以称所有生成树中权重之和最小的为 最小生成树(Minimum Spanning Tree)。 在本文中讨论的两种算法均采用贪心政策,如果将最小生成树中的边当成一个集合,那么在每一步中两个算法都会挑选一条边加入这个集合中,这样的边称之为 安全边 。 Kruskal...

git 操作总结

git Cheat Sheet

Git 是目前世界上最先进的分布式版本控制系统,Windows 环境下可以在官网下载安装,Ubuntu 等 Linux 环境下可以直接用 sudo apt-get install git 安装。 全局设置 用 Git 提交必须先声明自己的身份,可用如下指令设置: 1 2 git config --global user.name "Your Name" git config --glo...

Jekyll 环境搭建

Jekyll 本地环境安装需要如下几个组件: Ruby & Devkit Gem Ruby 环境搭建 首先打开之前下载的 Ruby 和 Devkit 安装文件,以默认设置安装即可,如要修改必须保证勾选添加环境变量。之后以命令行的形式(在此目录中 Shift + 右键以命令行或者 Powershell 运行)进入 Devkit 的解压目录中,运行如下命令: 1 2 r...

Latex 数学符号 汇总

Latex Math Symbol Cheat Sheet

Latex 的一大优点就是其可以写出优美的数学公式,本博客也使用 MathJax 来得到 Latex 中数学公式的效果。但是由于其有自己的语法,所以写了这篇文章以整理数学公式相关的内容。 由于本文中公式较多,所以可能需要些许渲染的时间。 常见公式 名称 代码 效果 上下标 _1...

数据结构 - 散列表

Hash Table

一、基本思想 数组的一大优点就是给出索引可以立刻给出其中存储的值,而散列表(Hash Table)是普通数组的推广。散列表同样可以在 \(O(1)\) 的时间内完成插入、搜索和删除的功能,但是不再要求索引是连续的数字,可以是字符串或是其他的数据结构。 理想的散列表仍是一个固定大小的数组,只不过其包含了关键词 (key) ,每一个位置称为一个单元或者 槽(slot)。然后如上图所示,每...

托管代码和非托管代码区别

Managed & Unmanaged Code

最近研究了一番 C++/CLI 和 .NET 相关的东西,经常看到什么托管代码、非托管代码,这是在微软 .NET Framework 环境下的术语。 托管代码 托管代码(Managed Code)是在程序运行过程中,由公共语言运行时(Common Language Runtime, CLR)运行的代码。CLR 可以提供诸如垃圾回收、异常处理、类型安全、数组边界等等的检查从而保证代码的安全...

广度优先搜索和深度优先搜索

Breadth First Search & Depth First Search

在图的使用中,不可避免的就是对图的搜索,最为基础的就是广度优先搜索(Breadth First Search)和深度优先搜索(Depth First Search)。 广度优先搜索 广度优先搜索,又名宽度优先搜索,从根节点开始,沿着宽度遍历整张图,直到所有节点都被访问过为止。在下图可以清楚的看出这一点。 在算法中,每一个结点都被涂上一个颜色,白色、灰色和黑色,白色代表尚未发现,灰色...

图的概念及表示

Data Structures - Graph

基本概念 图(Graph)是一种表示物件和物件之间关系的方法,是图论的基本研究对象,由顶点(Vertex)和边(Edge)组成。 如图所示即为一个最基本的图,小圆点即为顶点,连接顶点的线即为边。通常以 \(\vert V \vert\) 来表示顶点数量,\(\vert E \vert\) 代表边的数量。当两个顶点中存在直接相连的边则称这两个点邻接(adjacent)。 图有如下几种...

The Witness 谜题求解器

The Witness Solver

Github and English Version Here 介绍 The Witness(中文译名:见证者)是一款解密类的游戏,谜题主要形式是一笔画,如下图所示。 一笔画中有许多不同的形状,代表不同的规则。这个程序被设计用来解答这一谜题。 由于这是我第一个 WPF/C# 程序,代码仍有诸多不足,正在努力改善。 规则 形状 ...

Markdown 语法小结

Markdown Cheat Sheet

鉴于最近 Markdown 使用比较多,在 Github 和这一博客都需要用到 Markdown ,所以写了一篇这一文章来总结下语法。 总述 在 Markdown 中,每一个段落前后都必须是空行,否则按同一段落处理,不换行。 如果在段落中需要换行,则需要加入 <br> 或者在前一行末尾加入至少两个空格。大多数区块如表格都视为一个段落。 标题 标题以 # 为开头的,# 数量...