8.4k 8 分钟

# LIS & LCS # P1020 导弹拦截 #include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>using namespace std;const int N = 100010;int n = 0;int a[N], b[N], s[N], ls[N];void add(int x, int v) { for(; x<=n; x+=x&(-x))...
4k 4 分钟

# 一些技巧 # 常见的贪心技巧 货币使用问题: 尽可能少用,那么我们就先拿面值最大的,依次往下走,最后拿光了即可。 区间调度问题: 工作时间不能重叠,在可选工作中,每次都选取结束时间最早的作为选择,可以使工作量最大。 # 切题小技巧 递归,从后向前 预处理 划分子结构 单调队列、滑动窗口 能剪的枝一定要减!能剪的枝一定要减!能剪的枝一定要减! 但是剪枝别剪挂了…… # 手动扩栈 编译时指定参数 -Wl,--stack=sizesize 是栈的大小,单位为字节。 # 一些题 # P5686 [CSP-SJX2019] 和积和 #include...
3.9k 4 分钟

# DFS 搜索和 DP 不分家,几乎所有的 DP 都能用搜索解决(虽然复杂度可能较劣)。不过,如果实在想不出正解,DFS 不失为骗分的好手段。 主要的搜索算法有: DFS/BFS 爆搜 双向 BFS 启发式搜索(又称 A*) 迭代加深搜索 IDA*(迭代加深 + 启发式) 记忆化搜索 剪枝 重要程度:1,7,6 > 4,3 > 5,2。 # P3956 [NOIP2017 普及组] 棋盘 搜索 / DP 的题一定要先看数据范围。这道题 1≤m≤100,1≤n≤10001 ≤ m ≤ 100, 1 ≤ n ≤...
3.3k 3 分钟

# 区间 DP # P1880 [NOI1995] 石子合并 #include <stdio.h>#include <string.h>#include <iostream>using namespace std;const int N = 220;int ans, dp[N][N], n, a[N], s[N];int main() { scanf("%d", &n); for(int i=1; i<=n; ++i)...
2.7k 2 分钟

# Butterfly:添加全局吸底 Aplayer 播放器 以下步骤在 Butterfly 主题上可以正常生效。如果你使用的是其他主题,可以根据情况自行适配。 # 配置播放器 # 解决与 hexo-tag-aplayer 的兼容问题 如果你没有安装过 hexo-tag-aplayer 插件,请直接跳过该步骤。 如果你安装过 hexo-tag-aplayer ,请在 Hexo 的配置文件中修改以下设置: aplayer: meting: true asset_inject: false# 开启主题的 aplayerInject 选项 在主题配置文件中,enable 和 per_page 均设为...
1.7k 2 分钟

# 定义 方式 效果 set <数据类型名> 集合名; 先定义一个容器,容器内无任何元素 set <数据类型名> 集合名(另一个集合名); 定义一个集合并用另一个集合初始化(只能是数据类型相同的集合,不能是数组) set <数据类型名> 集合名(另一个集合名.begin(), 另一个集合名.end()); 定义一个集合并用另一个集合初始化(只能是数据类型相同的集合,不能是数组) set <数据类型名> 集合名[集合数量]; 定义集合数组 set...
2.3k 2 分钟

# Hexo:将你的博客部署到 Vercel # 写在前面 近些日子,静态网站的热度又渐渐高了起来。相比于动态网站,静态网站具有轻量、无需服务器、利于 SEO、速度快等特点,非常适合个人博客。再加上 Hexo、Hugo 等静态博客渲染框架的日渐成熟,已能与 Wordpress、Typecho 等老牌动态博客框架分庭抗礼。 与此同时,很多静态托管网站也应运而生。各种托管网站看似鱼龙混杂,其实由于各种原因,在国内能用的也就那么几家;如果你像我一样,没有服务器、没有备案,还想白嫖(),那么仅有的选择就更少了。综合各种因素,目前最适合托管静态博客的服务有: # GitHub...
8k 7 分钟

渐进式网络应用程式(PWA)是一种普通网页或网站架构起来的网络应用程序,可以将浏览器与移动 APP 的体验优势相结合。
916 1 分钟

# 整除分块 与其说整除分块是一种算法,不如说它是一个技巧。有时我们需要计算这样的式子:$$ \sum_{i=1}^n f(i)\lfloor\frac{n}{i}\rfloor $$ 根据经验,我们发现 $\lfloor\frac{n}{i}\rfloor$ 只有 $O(\sqrt n)$ 种取值。对于每种取值,$i$ 都会有一个连续的范围。假设函数 $f$ 的前缀和可以预处理后快速求出,那么我们可以枚举 $\lfloor\frac{n}{i}\rfloor$ 的所有取值,并和 $f$ 的连续一段的和相乘。具体可以见代码:
7.3k 7 分钟

# 图论 图论算法一般都是揉在一起的,很难单独把算法拆开讲,所以直接上题目吧。分类是大致分的,其实有很多是交叉的。 # 二叉树 二叉树的遍历有三种,分别为前序遍历,中序遍历和后序遍历,并且给定其中的两种遍历能够求出另一种遍历 (必须已知中序遍历)。 前序遍历:按 根 左 右 的顺序进行; 中序遍历:按 左 根 右 的顺序进行; 后序遍历:按 左 右 根 的顺序进行。 # 最短路 & 生成树 # 算法复杂度 多源最短路 Floyd:严格 O(n3)O(n^3)O(n3) 单源最短路 Dijkstra: 朴素:严格 O(n2)O(n^2)O(n2) 优先队列优化:均摊...