自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 最短路算法

最短路算法笔记 Dijkstra算法 ​ Dijkstra算法基于贪心思想,它适用于所有边长的长度都是非负数的图。当边长zzz都是非负数时,全局最小值不再可能被其他节点更新,故在第iii步中选出的节点x必然满足:dist[x]dist[x]dist[x]已经是起点到xxx的最短路径。我们不断的选择全局最小值进行标记和扩展,最终可以得到起点1到每个节点的最短路径的长度。 #include <b...

2020-01-18 10:45:09 135

原创 字符串hash

字符串hash ​ 字符串hash函数把一个长度任意的字符串映射成一个非负整数,并且其冲突的概率几乎为零。 ​ 取一固定值PPP,把字符串看成P进制数,并分配一个大于0的数值,代表每种字符。一般来说,我们分配的数值都远小于PPP。例如,对于小写字符构成的字符串,可以令a=1,b=2,...,z=26a=1,b=2,...,z=26a=1,b=2,...,z=26。取一个固定值MMM,求出该PPP进...

2020-01-18 10:44:31 179

原创 线段树笔记

线段树笔记 线段树是一种基于分治思想的二叉树结构,用于在区间上进行信息统计。与按照二进制位(2的次幂)进行区间划分的树状数组相比,线段树是一种更加通用的结构: 线段树每个节点都代表一个区间 线段树具有唯一的根节点,代表的区间是整个统计范围,如[1, N] 线段树的每一个叶节点都代表一个长度为1的元区间[x, x] 对于每个内部节点[l, r],它的左节点是[l, mid], 右节...

2020-01-18 10:43:57 147

原创 桶排序

桶排序 class Solution { public: class Bucket{ public: bool used = false; int maxval = INT_MIN; int minval = INT_MAX; }; int mins = INT_MAX, maxn =...

2020-01-18 10:41:12 163

原创 数论笔记

1. 质数 1.1 质数的判定 试除法 若一个正整数NNN为合数(除了能被1和自身以外的数整除),则存在一个能整除NNN的数TTT,其中2≤T≤N2\leq T\leq \sqrt N2≤T≤N​。 bool is_prime(int n) { if (n < 2) return false; for (int i = 2; i < sqrt(n); ++ i ) ...

2020-01-18 10:40:35 230

原创 前缀和与差分

前缀和与差分 一维前缀和 void init() { for (int i = 1; i <= n; ++ i ) { f[i] = f[i-1] + value[i-1]; } } int get(int l, int r) { return f[r] - f[l-1]; } 二维前缀和 void init() { for (in...

2020-01-18 10:39:37 155

原创 快速选择算法

快速选择算法 算法思想: 随机选择一个枢轴。 使用划分算法将枢轴放在数组中的合适位置 pos。将小于枢轴的元素移到左边,大于等于枢轴的元素移到右边。 比较 pos 和 N - k 以决定在哪边继续递归处理。 int partition(vector<int>& nums, int l, int r) { int left = l+1, right = r; ...

2020-01-18 10:39:04 196

原创 并查集

并查集 ​ 朴素并查集: void init() { for (int i = 1; i <= n; ++ i ) fa[i] = i; } int get(int x) { if (fa[x] == x) return x; return fa[x] = get(fa[x]); } void merge(int x, int y) { fa[get(x)...

2020-01-18 10:38:07 141

原创 数位DP

数位DP 用HDU的一道题目作为实例不要62,这道题是不带前导零的一道实例。 #include <bits/stdc++.h> using namespace std; int dp[20][2]; int a[20]; int dfs(int pos, int pre, int state, bool limit) { if (pos == -1) return 1; ...

2020-01-18 10:36:15 98

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除