并查集
并查集简介并查集是为了解决图联通的问题而发明的算法,它可以实现$O(1)$时间复杂度的插入和平均$O(log(n))$时间的查询,从而快速处理判断两个元素是否属于同一个部分
并查集支持的操作
寻找根节点(find)
判断任意两个节点是否联通(is_connected)
将两个节点合并(join)
返回一个节点的联通个数(count)
并查集的实现find无路径压缩版本1234567int find(int x) { if(parent[x] == x) { return x; } else { return find(parent[x]); }}
有路径压缩版本123456789int find(int x) { if(parent[x] == x) { return x; } else { int p = find(parent[x]); parent[x] = p; ...
数学分析总结
积分总结常用且记不到的公式
定积分的常用技巧保向性若可积,且,则保向性被用于证明积分相关的不等式,如教材P186的A组第14题
微分中值定理描述若在上连续,定号(不变号),则使得该定理常用于证明存在某些特殊点使得某个等式成立,如教材P186B组第3题
证明首先我们通过达布上和和达布下和,得到式子2.2.1是由于我们在每个区间里面分别选取最小值和最大值,这是上界和下界。再由的连续性,由介值定理,得到
特殊不等式证明柯西不等式的积分形式设在区间上连续,有
证明对任意,,所以对于方程没有两个根,使用判别式,有整理可得
牛顿-莱布尼茨公式描述
证明使用差分和拉格朗日中值定理的技巧,详情见教材P187
微积分第一基本定理(可变上限的积分)描述设
证明连续函数版本$$\begin{split}\varPhi’(x_0) &=\lim_{t \to 0} \frac{\varPhi(x_0 +t) - \varPhi(x_0)}{t}\&= \lim_{t \to 0} \frac{\int {a}^{x_0 + t}f(x)\mathrm{d}x - \int {a}^{x_ ...
部署frp服务器发布内网服务并获取免费ssl证书
部署frp服务器发布内网服务并获取免费ssl证书本文适用对象
不想花冤枉钱搭建一个自己的服务器
能够在本地搭建好服务并且能够通过 localhost 访问
有一台可以访问互联网的服务器 (例如腾讯云、阿里云)(如果没有建议花点小钱买一个)
有一个自己的域名(必需品,可以在各种云上买到,记得备案哦)
云端搭建frps服务基础配置这里建议云服务器安装linux系统,操作更简单
到frp github发布页找到对应的架构,右键复制链接地址
在云服务器上执行(这里以amd64为例)
1wget https://github.com/fatedier/frp/releases/download/v0.51.3/frp_0.51.3_linux_amd64.tar.gz
下载完成后解压
1tar -zxvf frp_0.51.3_linux_amd64.tar.gz
然后进入解压后的文件夹,修改配置文件 frps.ini ,在里面输入一下内容:
12345678910111213141516[common]bind_port = 7000vhost_http_port = 80vhost_h ...
如何进行gitlab-ci发布软件包
如何使用Gitlab CI发布软件包前言本文参考官网,给出一个在powershell下能够发布软件包的例子以及一些坑,供大家参考。
Step 1. 安装release-cli123New-Item -Path 'C:\GitLab\Release-CLI\bin' -ItemType DirectoryInvoke-WebRequest -Uri "https://gitlab.com/api/v4/projects/gitlab-org%2Frelease-cli/packages/generic/release-cli/latest/release-cli-windows-amd64.exe" -OutFile "C:\GitLab\Release-CLI\bin\release-cli.exe"$env:PATH += ";C:\GitLab\Release-CLI\bin"
坑点1:以上是官方的配置方法,由于某些原因,最后一步添加环境变量的方法在你重新打开一个powershell或者在gitlab ...
本地搭建gitlab
如何使用docker在ubuntu22.04中搭建Gitlab(无坑版)[TOC]
安装docker这里推荐使用官方教程docker官方安装教程安装
更新源
12sudo apt-get updatesudo apt-get install ca-certificates curl gnupg
添加GPGkey
123sudo install -m 0755 -d /etc/apt/keyringscurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpgsudo chmod a+r /etc/apt/keyrings/docker.gpg
建立仓库
1234echo \ "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/lin ...
在wsl上安装texlive
如何使用WSL+VScode+Texlive+git+SSH搭建LaTeX环境前言:为什么要大费周章在WSL里面使用LaTeX?一句话,Windows下编译LaTeX太慢了,仅此而已
安装WSL
在开始菜单搜索“启用或关闭Windows功能”
勾选“适用于 Linux 的 Windows 子系统”
安装wsl,可选择一下两种方法
在Microsoft Store中搜索Ubuntu,安装Ubuntu 22.04 LTS
在命令行中输入 1wsl --list --online
查看可用分支,再输入1wsl --install -d <分支名称>
安装完成后,点击启动,等待安装完成
设置用户名和密码
git&SSHgit配置
输入1vi ~/.gitconfig
在文件中黏贴以下内容(这样最快)1234567891011121314151617181920212223242526272829303132333435[user] name = YOUR_NAME email = YOUR_EMAIL[alias] co = ...
termux配置
如何在华为matepad11上安装termux+Debian+code-server 并运行机器学习Python程序在华为matepad11上安装termux先到termux app github网页下载对应的app,在右边有个release,进去找到对应自己设备的cpu的安装包下载,然后点击安装就可以了,后面问你权限的时候点击是
在termux里面安装Debian Linux更新源进入termux, 照例先更新一下,执行
1pkg update
出现对应的可升级的包之后输入
1pkg upgrade XXX
升级对应的包(注意这里是pkg,虽然用apt也可以,但是版本有细微区别)
访问外部储存输入
1termux-setup-storage
输入这一行命令以后可以访问外部储存
安装Linux发行版下载 proot 和 proot-distro
1pkg install proot proot-distro
就可以安装对应的程序了
安装结束后,输入
1proot-distro list
可以查看所有proot可以安装的Linux发行版列表
选择一个你喜欢的安装(这里选择Debian ...
如何配置git
如何配置git本文给出一种更改git配置文件快速配置git的方法,以及一些常用的配置。
配置文件使用方法:- 在目录下新建.gitconfig文件(Windows下就是C:\Users\用户名,Linux下就是)- 在~目录下新建.gitignore文件- 复制一下内容到对应文件中.gitconfig文件内容123456789101112131415161718192021222324252627282930313233343536[user] name = YOUR_NAME email = YOUR_EMAIL[alias] co = commit st = status logl = log --graph --all --oneline ch = checkout cp = cherry-pick[core] quotepath = false editor = code --wait --new-window excludesfile = ~/.gitignore[filter "lfs"] process = git-lfs filter-proces ...