白嫖算法设计与分析

因为这学期选了不少其他限选课,再加上这门课听不少人说考试挺鬼畜的(全考算法证明题),老师挂科率也高(高达30%+),就算过了得分也不好看(均分75) 所以没选,但毕竟还是挺有用的感觉,所以跟着舍友旁听了。
虽说不用交作业不用考试,但还是开个笔记好好学下……(虽然还是分而治之和图算法占大半篇幅

1.渐进表示法

  • \Omicron表示法

定义:

\Omicron (g(n)) = \{f(n): 存在正数c和n_0,使得当n \ge n_0时0 \le f(n) \le cg(n)恒成立 \}

表示时间复杂度最好的情况,即f(n)总在cg(n)的下方

山大校内网socks5代理端口被滥用

最近发现服务器异常卡顿甚至无响应,经检查发现原本用于山大校内网而完全对外开放代理的1080端口被滥用。因此将该端口默认封闭,需要使用的同学请通过邮箱联系我,并提供自己的IP地址,我将审核并加入白名单。

此外,校内网端口映射服务(https://sdu.herui.club)正常开放。需要的同学可以直接使用该服务。

[……]

继续阅读

组合数学(待完成)

  • 计数原理:加法计数原理(分类),乘法计数原理(分步),减法计数原理,除法计数原理

  • 排列组合:

与顺序有关的摆放或选择称 排列(Permutation)。

P(n,r)=\dfrac{P(n,n)}{P(n-r,n-r)}=\dfrac{n!}{(n-r)!}

规定P(n,r)=0\ \text{when}\ n<r

与顺序无关的摆放或选择称 组合(Combination)。

\begin{pmatrix}n\\r\end{pmatrix}=\dfrac{P(n,r)}{P(r,r)}=\dfrac{n!}{r!(n-r)!}

规定`$$\begin{pmatrix}n\r\e[……]

继续阅读

VMware Player安装MacOS Catalina (10.15.5)

很简单,只需要3个东西:

1.VMware Player

直接去官网安装即可,免费版不用许可证

2.VMware Unlocker

用来向VMware添加Macos虚拟机的选项。

在这里下载:Releases · paolo-projects/auto-unlocker (github.com)

3.MacOS IOS镜像文件

在这里下载(可能需要翻墙):Download macOS Catalina ISO Image -Latest – wikigain

或者等我传上山大云盘再分享下载链接

以上三样准备好后,先点开VMware Unlocker,它会自动[……]

继续阅读

学生在线前端开发部第一次例会

0. 预备内容

– Git

  1. Git是什么?
    Git是一个代码版本控制系统,可以方便地管理代码迭代和实现协同工作。我们可以使用Git实现代码备份和代码版本控制(更新、回退、合并、切换分支等等)

  2. Git的工作流
    你的本地仓库由 git 维护的三棵“树”组成。第一个是你的工作目录(work[......]

    继续阅读

使用中转服务器Nginx+容器化EasyConnect实现校内网端口映射

参考Github上的开源项目Hagb/docker-easyconnect,实现外网访问自己服务器上的域名:特定端口来访问校内网特定内容,配合nginx的stream模块,可以完成任意端口任意协议的转发。

  1. 从 Docker Hub 上直接pull下来容器化的EasyConnect:
    docker pull hagb/docker-easyconnect:latest
    此容器带vnc服务,因为目前easyconnect的启动必须以图形界面方式。启动时需要vnc远程连接它的图形界面点击登录。

  2. 配置启动脚本,这里的端口映射可以自己调,要注意的是,本机上的端口还要通过nginx再次进行转发,否[……]

    继续阅读

字符串匹配算法分析

1. Bruce Force 字符串暴力匹配算法

最简单也是最朴素的算法,直接贴上代码

//text是待匹配的目标串,pattern为模式串。
//需要在目标串text中找到与模式串pattern相同的子串
int BruteForce(string text, string pattern){
    int lenT = text.size();
    int lenP = pattern.size();
    int i=0, j=0;
    for (i = 0; i[......]

继续阅读