摘要:
问题引入: 给出 \(n\) 行 \(m\) 列的01矩阵,现在要选某些行,求出一种方案使得每一列恰好有一个1 这是一种精确覆盖问题 DLX的原理就是:先选出 "1" 的个数最少的那一列 \(min\_num\),枚举选某一行(在 \(min\_num\) 列上有1)\(x\),然后将 \(x\) 阅读全文
摘要:
引入: 给出质数 $p$ 以及 $b,n$ ,问满足 $b^x \equiv n\ (mod\ p)$ 的最小 $x$ 是多少? 如果说 $p$ 很小,我们就可以直接通过费马小定理枚举 $1$ ~ $p-1$ 可惜,$p<2^{31}$ 那我们就引出今天的主角:BSGS BSGS 用到了分块的思想 阅读全文
摘要:
来补补初二没学透的坑 引入: \(\mu (n)\) 为莫比乌斯函数 定义: \(\mu (1)=1\) 当 \(n=\prod^k_{i=1} p_k\) 时,\(\mu (n) = (-1)^k\) 否则 \(\mu (n) = 0\) 重要性质: \(\sum_{d|n} \mu (d)=[n 阅读全文
摘要:
博弈论的简单总结: 1. 巴什博弈: 一堆石子,共 \(n\) 个,双方可以取 \(1\) ~ \(m\) 个石子,先取完者获胜(无法操作者败) 显然,如果场上只有 \(m+1\) 个石子,那么先手必败 那我们可以思考,如果场上石子有 \(k(m+1)+r\) 个石子,那先手一定可以取 \(r\) 阅读全文
摘要:
P4719 【模板】"动态 DP"&动态树分治 什么是动态树分治我也不知道 有史以来第一次认真写个算法 写在前面: 注意代码细节!注意代码细节!注意代码细节! (因为多次很小很小的错误导致查了1~2个小时才看到的蒟蒻枯死) 0. 前置知识: 线段树、树链剖分、(树形DP?) 1. 问题简化: 先考虑 阅读全文
摘要:
前置芝士: 向量: 定义:既有大小,又有方向的量叫做向量(Vector)。 可以表示为 $\overrightarrow{AB}$ 或 $\vec a$ 由于向量平移后不变,所以也可以用 $(x,y)$ 表示向量,即将尾端平移至原点,记录头端的坐标 向量的模:$|\overrightarrow{AB 阅读全文
摘要:
tarjan是指一类算法,可用来求LCA,割点/边,强联通分量。 虽然我觉得它只是dfs维护一些特殊信息罢了 1. 求LCA 利用 tarjan 可以在O(n+q)的时间内,通过1次 dfs 离线求出询问的LCA 具体实现过程: 假设 \(LCA(u,v)=k\) 那么显然,\(u\) 和 \(v\ 阅读全文