摘要:
题目描述 给出同一平面内的 n 个点,求出最近点对的距离 "传送门" 题解 ~~这里不讨论那种人类精髓做法: 随机旋转~~ 考虑分治 把整个点的序列按 x 先排一遍序 如果要分治,显然是要分开处理某几个部分在合并 所以我们直接考虑二分,按 x 坐标二分,分别求出两部分的最近距离之后,再合并 接下来我 阅读全文
摘要:
题意简化 给定一张n个点m条边的图,问从一号点到其他点的次短路长度 题解 先建出图的最短路树,然后把非树边排序,依次枚举更新,并查集判重即可 cpp include using namespace std; define re register define ll long long define 阅读全文
摘要:
"传送门" 题解 先把 $d$ 二分,然后按价格插入主席树,主席树中维护当前区间水果的重量和与总价值,大概就是这样子. cpp include using namespace std; define re register define int long long define in inline 阅读全文
摘要:
权值线段树 顾名思义,就是以权值为下标建立的线段树。 现在让我们来考虑考虑上面那句话的产生的三个小问题: 1. 如果说权值作为下标了,那这颗线段树里存什么呢? ————— 这颗线段树中, 记录每个值出现的次数 2.权值很大怎么办?数组空间不够啊 ————— 可以先离散化,再记录 3.那权值线段树到底 阅读全文
摘要:
问题 传送门 看到这个问题感觉很难??? 不用怕,往下看就好啦 假如你不会CRT也没关系 EXCRT大致思路 先考虑将方程组两两联立解开,如先解第一个与第二个,再用第一个与第二个的通解来解第三个...(以此类推) 那么怎么解第一个与第二个同余方程呢? \[ \begin{cases} x \equi 阅读全文
摘要:
Lucas定理 先上结论: 当p为素数: \(\binom{ N }{M} \equiv \binom{ N/p }{M/p}*\binom{ N mod p }{M mod p} (mod p)\) 证明:令 \(s=\lfloor \frac{n}{p} \rfloor\),\(q=n\bmod 阅读全文
摘要:
快速讨伐 ( 一道DP与组合数学的思维好题 ) "传送门" 前置小技巧 (线性求阶乘的逆元) 根据逆元的定义 : $a x \equiv 1 (mod p)$ 所以相当于 $ x== $ $1\over a$ (在膜意义下) 那么 $1\over !(n+1)$ 也就相当于 !(n+1) 的逆元, 阅读全文
摘要:
线性筛 我已经掌握埃氏筛了 为什么还要学线性筛??? 线性筛的时间复杂度是严格 \(O(N)\) 的, 而埃氏筛的复杂度是 \(O(N * log_{2}( log_{2}(N) )\) 看上去并没有快多少 实际也是, 但在处理一些大数据时,差距就凸显出来了 算法思路 概述: 和埃氏筛类似的 线性筛 阅读全文
摘要:
Tarjan 在dfs的过程中记录时间戳与每个点可到达的时间戳最小的点 记:low当前可已过的时间戳最小的,dfn当前点的时间戳 缩点 顾名思义,缩点就是把一个强连通分量缩成一个点 inline void Tarjan(int x)// st栈,co当前点属于的强连通分量 { low[x]=dfn[ 阅读全文
摘要:
题意简化 "传送门" 有 n 个物品和容量为 m 的背包,每个物品最多有一个先决条件物品 (即必须选了它的先决条件物品,才能选当前物品) ,第 i 个物品占 Wi 单位空间,有 Vi 的价值,求最大总价值 n using namespace std; define re register defin 阅读全文