筛质数
1.朴素版的筛法 O(nlogn)
每次循环筛掉iii的倍数
题目:httpss://www.acwing.com/problem/content/870/
123456789101112131415161718192021222324#include <iostream>#include <algorithm>using namespace std;const int N = 1000010;int n;int cnt;bool st[N];void get_prime(){ for (int i = 2; i <= n; i++) { if (!st[i]) cnt ++; for (int j = i + i; j <= n; j+=i) st[j] = true; }}int main(){ scanf("%d", &n); get_prime(); printf("%d", cnt);}
2.埃氏筛法 O(nloglogn) ...
匈牙利算法
算法背景
匈牙利算法是一种在多项式时间内求解任务分配问题的组合优化算法,并推动了后来的原始对偶方法。1955年,库恩(W.W.Kuhn)利用匈牙利数学家康尼格(D.Kőnig)的一个定理构造了这个解法,故称为匈牙利算法 [1]
前置知识
什么是匹配、最大匹配?
匹配:
给定一个二分图GGG,在GGG的一个子图MMM中,MMM的边集E{E}E中的任意两条边都不依附于同一个顶点,则称MMM是一个匹配。[2]
也就是说,左右一一对应,任意两条边都没有公共顶点。
最大匹配:
一个图所有匹配中,所含匹配边数最多的匹配,称为这个图的最大匹配。下图就是一个最大匹配,它包含 444条匹配边。
完美匹配:
若图中的一个匹配,包括了图中的所有点,则称这个匹配为完美匹配。完美匹配使图中所有点都为匹配点。上图就是一个完美匹配。显然,完美匹配一定是最大匹配(完美匹配的任何一个点都已经匹配,添加一条新的匹配边一定会与已有的匹配边冲突)。但并非每个图都存在完美匹配。
题目:httpss://www.acwing.com/problem/content/863/
给定一个二分图,其中左半部包含 n1n1n ...
染色法判定二分图
再介绍染色法之前,我们先了解什么是 二分图:
什么是二分图
二分图又称作二部图,是图论中的一种特殊模型。 设 G=(V,E)G=(V,E)G=(V,E)是一个无向图,如果顶点VVV可分割为两个互不相交的子集(α,β)(\alpha,\beta)(α,β),并且图中的每条边(i,j)(i,j)(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(iinα,jinβ)(i in \alpha,j i n \beta)(iinα,jinβ),则称图GGG为一个二分图。
二分图是一类特殊的图,它可以被划分为两个部分,每个部分内的点互不相连。下图就是一个典型的二分图。
换成人话的意思就是说:在一个集合内的点不会相连接,只有集合外才有连线
二分图性质
二分图的性质:当且仅当图中不含有奇数环。
(奇数环:环中边的数量是奇数)
证明:
必要性:当有奇数环是必然不是二分图
反证法:假如有奇数环是二分图
如图所示,以上边111开始顺时针标记, 因为是奇数环,很显然不管标记到什么位置,111和444 的颜色都是不同的,但因为是二分图,颜色应该一致,所以矛盾。
充分性:若一个图不含有奇 ...
django项目设计
Django项目
1.项目系统设计:
menu:菜单设计
playground:游戏界面
settings:设置界面
2.项目文件结构:
templates:管理html文件
urls:管理路由,即链接与函数的对应关系
views:管理https函数
models:管理数据库函数
static:管理静态文件
css:对象的格式,比如位置、长宽、颜色、背景、字体大小等
js:对象的逻辑,比如对象的创建与销毁、事件函数、移动、变色等
image:图片
audio:声音
consumers:管理websocket函数
scripts:该文件夹和game同级,用于编写shell脚本,把game/static/js/src中的js代码都压缩到一个js文件中,也可以使用各种压缩软件
3.项目初始化
将所添加的app的urls,views,models删除,创建urls,views,models,static文件夹, 便于管理
在settings里添加
123456import osSTATIC_ROOT = os.path.join(BASE_DIR, ...
ssh免密登录配置
Test
配置文件
创建 ~/.ssh/config 文件
1vim ~/.ssh/config
在文件中输入:
1234Host servername HostName IP地址或者域名 User 用户名...可添加多个用户
密钥登录
创建密钥:
1ssh-keygen
然后一直回车
结束后,~/.ssh/ 目录下会多两个文件:
id_rsa : 私钥
id_rsa.phb: 公钥
如果之后想免密登录 某个服务器, 就将公钥传给哪个服务器即可。例如, 想免密登录 servername 服务器, 将公钥的内容, 复制到servername中的 ~/.ssh/authorized_keys
当然也可以使用下面的命令一键添加公钥:
1ssh-copy-id servername
带 下划线 的文本