🌓

cs61b-2

阅读全文

cs61b-2

阅读全文

cs61b-1

今天开始随NOVA兴趣组学习CS61B,计划每天记录学习笔记。2026年3月15日。 checklist: reading 1.1, 1.2 lab 0, lab 1 hw 0 关于环境搭建(lab0和lab1)安装java和IntelliJ过程比较顺利,按照lab一步步操作就好了。一开始下载java 17,会遇到“权限不足无法修改注册表”的问题,解决办...

阅读全文

更多图论

上次我们谈到当$n \geq 5$时,完全图$K_n$不是平面图。现在我们将致力于证明这一点。 一些概念 平面图(planar graph):如果一个图可以被绘制在平面上,并且其边仅在顶点处相交,那么这个图就是平面图。 完全图(complete graph):一个完全图$K_n$是一个简单图,其中每对不同的顶点之间都恰好有一条边。 二分图(bipartite...

阅读全文

图、欧拉回路和树

图什么是图(graph)?图是由顶点(vertex/node)和边(edge)组成的数学对象。假设我们有一个图$G$,那么它可以表示为$G = (V, E)$,其中$V$是顶点的集合,$E$是边的集合。每条边连接两个顶点。例如,考虑一个简单的图: 12345 A / \B C \ / D 在这个图中,顶点集合$V = ...

阅读全文

WSL2+VSCode+Clash使用桥接模式进行开发环境搭建

使用WSL2搭配VSCode的WSL插件可以实现在VSCode中直接操作Linux环境下的文件和工具,既可以享受VSCode的现代化开发环境,又可以利用Linux的完整工具链。但是在国内网络环境下,使用WSL2进行开发可能会遇到下载速度慢、连接不稳定等问题。在Windows上我们可以使用Clash作为代理解决大部分网络问题,但是WSL默认情况下走的是NAT转...

阅读全文

Gale-Shapley稳定匹配算法原理介绍

医生匹配问题有一家医院有n个医生和n个病人需要配对。每个医生都有一个病人偏好列表,表示他更愿意治疗哪些病人;每个病人也有一个医生偏好列表,表示他更愿意被哪些医生治疗。医院的目标是找到一种病人和医生都满意的稳定的匹配方式。例如,假设有三个医生D1、D2、D3和三个病人P1、P2、P3,他们的偏好列表如下: 医生偏好列表: D1: P2 > P1 &g...

阅读全文

记一道二分算法题:CF609D

最近在参加计院和软院的WinterCode比赛,其中有一道题为CF609D。解题过程挺挣扎的,也是第一次做绿题,记录一下想的过程。这里方便阅读,贴一下题目描述: Nura想要购买k样小东西,但她手里只有s卢布。然而,商店里只收美元或英镑。货币种类和以该货币计价的价格都不会改变。Nura可以在n天里购买小东西。每一天,她将知道美元和英镑的汇率,所以她可以知道她...

阅读全文

Git More --3

下面是阅读Pro Git的一些笔记,涵盖了第三章关于分支的内容。比较长,其实可以直接阅读小结。 在Git中,任何文件、目录、提交等等其实都是包含一定信息的对象,这些对象通过SHA-1哈希值进行唯一标识。Git使用四种类型的对象:blob(文件数据)、tree(目录结构)、commit(提交信息)和tag(标签)。这些对象通过指针相互关联,形成一个有向无环图(...

阅读全文

Git More --2

这是Pro Git 2.3到2.7的阅读笔记,有点长,可以直接看小结。 查看历史修改使用git log命令可以查看提交历史: 1git log 你将看到类似如下输出: 12345commit f5c2e8b9d6e4e2a1b3c4d5e6f7a8b9c0d1e2f3g4Author: Your Name <your.email@example.co...

阅读全文

Git More --1

这是阅读Pro Git内容的一些笔记。以下内容包括该书开头到2.2节的内容。 版本控制系统的一些过去在Git出现之前,版本控制系统(Version Control System, VCS)主要有两种类型:集中式版本控制系统(Centralized VCS)和分布式版本控制系统(Distributed VCS)。但在这两种类型之前,还有一种更早期的版本控制方法...

阅读全文

MS第三讲-版本管理器Git

Git IntroGit是一种版本控制系统(VCS),用于追踪源代码或者其它文件更改。也就是说,这些工具可以帮助我们管理代码修改的历史记录,并且允许我们在不同版本之间切换。如果你喜欢玩游戏,比如赛博朋克2077,那么Git对你来说会相当容易理解。想象一下,你在玩一个开放世界的游戏,可以随时保存你的进度。万一boss战的时候一不小心挂了,你可以回到之前的存档点...

阅读全文

Docker基础笔记

Docker Intro网上关于docker的介绍有很多。这里简单介绍docker的基本概念和常用命令。可以作为某种入门参考或者协作规范。 基本概念Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。它可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。可供...

阅读全文

MS第二讲-Bash脚本和工具

Bash Shell Scripts我们之前学习了如何在shell中运行单行命令。现在我们将学习如何将多个命令组合成一个脚本,以便重复使用和自动化任务。 在bash中为变量赋值的语法是 VAR_NAME=value,注意等号两边不能有空格。要引用变量的值,可以使用 $VAR_NAME 或 ${VAR_NAME}。bash中的字符串通过&#...

阅读全文

MS第一讲-Bash Shell

Lecture1: The Bash Shell打开bash shell,你将看到一个提示符,一般是这样的: 1tye2007@YourComputer:~$ 这个提示符告诉你当前的用户名(tye2007)、计算机名(YourComputer)以及当前所在的目录(~,表示用户的主目录)。在提示符后面,你可以输入命令来与计算机交互。$符号表明你当前不是roo...

阅读全文

KMP算法原理和代码实现

KMP算法主要解决的的是字符串匹配问题。 给定一个文本串T和一个模式串P,要求在文本串中找到模式串出现的位置。 引入:普通暴力匹配算法最简单的字符串匹配算法是暴力匹配算法。其基本思想是:从文本串T的第一个字符开始,依次与模式串P的字符进行比较。如果遇到不匹配的字符,则将模式串向右移动一位,继续比较,直到找到匹配的位置或者文本串被扫描完为止。 12345678...

阅读全文

在WSL2中使用Clash verge镜像配置代理网络连接

在WSL2中使用Clash verge镜像配置代理网络连接 !NOTE:WSL2版本:2.6.3.0WSL2内核:6.6.87.2-1Windows版本:Windows 11 25H2 背景在平时打开WSL@Ubuntu时,会发现一行提示: 1wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localh...

阅读全文