会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
purinliang
首页
新随笔
联系
订阅
管理
[置顶]
【算法竞赛】算法竞赛常用模板目录
摘要: 基础 标准头文件等前置模板 语法基础:函数、指针、引用、结构体、类、速通Python 算法基础:模拟、递归、回溯、递推、贪心、二分(整体二分)、三分 排序:选择排序、冒泡排序、插入排序、快速排序、归并排序、桶排序、基数排序、堆排序、希尔排序 高精度整数、位运算、时空复杂度分析 离散化、前缀和和差分、
阅读全文
posted @ 2020-09-15 11:23 purinliang
阅读(2140)
评论(0)
推荐(0)
2024年6月8日
【图论】欧拉图、欧拉回路、欧拉通路
摘要: 定义 欧拉回路Eulerian Cycle:通过图中每条边恰好一次的回路 欧拉通路Eulerian Path:通过图中每条边恰好一次的通路 欧拉图:具有欧拉回路的图 半欧拉图:具有欧拉通路但不具有欧拉回路的图 欧拉图中所有顶点的度数都是偶数。 若 G 是欧拉图,则它为若干个环的并,且每条边被包含在奇
阅读全文
posted @ 2024-06-08 09:28 purinliang
阅读(1103)
评论(0)
推荐(0)
2024年5月7日
【动态规划】一些奇怪的DP题目的列表
摘要: LeetCode 741. 摘樱桃 https://leetcode.cn/problems/cherry-pickup/description/ LeetCode 1463. 摘樱桃 II https://leetcode.cn/problems/cherry-pickup-ii/descript
阅读全文
posted @ 2024-05-07 00:52 purinliang
阅读(16)
评论(0)
推荐(0)
2024年5月3日
【基础】有用的C++新特性和新STL
摘要: Reduce (C++17) ll s = reduce(a + 1, a + 1 + n); // 求和 ll s = reduce(a + 1, a + 1 + n, std::plus<ll>); // 求和 double s = reduce(a + 1, a + 1 + n, std::m
阅读全文
posted @ 2024-05-03 11:50 purinliang
阅读(74)
评论(0)
推荐(0)
2024年4月25日
【基础】整体二分
摘要: 二分答案的复杂度log(ans),check的复杂度一般至少是O(n)(甚至是nlogn),那么q次询问的复杂度就是 \(O(q*log(ans)*n)\) q通常与n同规模。如果把询问合并到一起回答,就可以优化复杂度,这也是整体二分的不一样之处。总的来说,对整个ans的值域像线段树一样进行递归,每
阅读全文
posted @ 2024-04-25 20:33 purinliang
阅读(59)
评论(0)
推荐(0)
2024年4月20日
【基础】三分
摘要: 想着一直都没有写过三分的模板,每次都是用for循环收尾,习惯确实不太好。 三分法求先增后减或者先减后增函数的最值。其实都没必要是上凸或者下凸的函数。 下面是每次缩减1/3长度的写法,比较容易理解,面对负数等情况也不容易出问题。 // x = 4, f(x) = 20 ll f (ll x) { re
阅读全文
posted @ 2024-04-20 17:49 purinliang
阅读(33)
评论(0)
推荐(0)
2024年4月14日
【数论】最大公因数和最小公倍数(GCD和LCM)
摘要: 最大公因数(GCD) 两个数的最大公因数很好做,使用内置的库函数即可,注意x和y的类型要相同。 ll gcd = __gcd (x, y); 如果要求多个数的最大公因数,那么初始化为0(因为根据定义,0和任何数x的gcd都是x,所以0是gcd操作的幺元),然后分别进行gcd即可。 ll gcd =
阅读全文
posted @ 2024-04-14 13:05 purinliang
阅读(410)
评论(0)
推荐(0)
2024年4月12日
【数学】组合数学 - 卡特兰数
摘要: 父级页面:【数学】组合数学 卡特兰数 记号为 \(H_n\) 第n个卡特兰数,下面的n就是指这个。 \(H_0=1, H_1=1, H_2=2, H_3=5, H_4=14, H_5=42\) 卡特兰数最常见的场景是合法的括号序,还有栈进出的方案。他们的特点就是“右括号”、“出栈”的次数不能超过剩余
阅读全文
posted @ 2024-04-12 12:05 purinliang
阅读(137)
评论(0)
推荐(0)
【数学】组合数学 - 排列组合
摘要: 父级页面:【数学】组合数学 排列 组合 可重排列 可重组合 隔板法 盒子可以为空 隔板法:x个相同的小球,有y个不同的盒子,每个盒子可以为空,求有多少种方案数?把y个不同的盒子视作y-1个不同的隔板,然后把小球视作不同的,全排列有 \(A_{x+y-1}^{x+y-1}\) 种,然后除以隔板的全排列
阅读全文
posted @ 2024-04-12 12:03 purinliang
阅读(353)
评论(0)
推荐(0)
2024年4月10日
【数学】多项式插值
摘要: 问题描述 给出 \(n + 1\) 个二维平面上的点对 \((x_0, y_0), (x_1, y_1), (x_2, y_2), \cdots, (x_{n}, y_{n})\) ,求一个经过这些点的不超过 \(n\) 次的多项式 \(P(x) = p_{n} \cdot x^{n} + p_{n
阅读全文
posted @ 2024-04-10 20:57 purinliang
阅读(64)
评论(0)
推荐(0)
【图论】树的重心
摘要: 树的重心的定义是,对树中的某个点,以这个点为根,然后它会拥有若干棵子树,取出最大的那棵子树的size,然后在所有点中求最小的最大的子树的size的点,这个点就是树的重心。简单来说就是找到某个点r,去掉r之后,每棵子树是长得最平均的。树的重心最多有2个(这时候重心其实是在这两点之间的边上),最少有1个
阅读全文
posted @ 2024-04-10 07:14 purinliang
阅读(195)
评论(0)
推荐(0)
下一页
公告