摘要: 题目 Luogu P1350 有下面这样一个网格棋盘, \(a,b,c,d\) 表示了对应边的长度,也就是对应格子数: 当 \(a=b=c=d=2\) 时对应下面这个棋盘: 要在这个棋盘上放置 \(k\) 个互不攻击的车,也就是 \(k\) 个车没有两个再同一行或同一列,求方案数 分析 设上方 \( 阅读全文
posted @ 2021-12-21 17:04 f(k(t)) 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 题目 Luogu P3166 给定正整数 \(N,M\) ,计算三点都在 \(N\times M\) 的网格的格点上的三角形有多少个 分析 可以发现,只要三点位于格点且不共线就能形成三角形,考虑计算三点共线的情况: 平行于 \(x\) 轴共线: 每行有 \(m+1\) 个点,共 \(n+1\) 行, 阅读全文
posted @ 2021-12-21 16:49 f(k(t)) 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 题目 Luogu P1066 给定 \(k,w\) ,设 \(r\) 是一个 \(2^k\) 进制数,求满足以下条件的 \(r\) 的个数 \(r\) 至少是一个 \(2\) 位的 \(2^k\) 进制数 作为 \(2^k\) 进制数,除了最后一位外, \(r\) 的每一位严格小于它右边相邻的那一位 阅读全文
posted @ 2021-12-20 16:15 f(k(t)) 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 在题目要求对组合数取模时,可以用卢卡斯定理等方法,但是要求算出组合数的具体值时,就需要用高精度计算大组合数了 原理 对于素数 \(p\) 在 \(n!\) 中的幂次 \(cnt(n,p)\) ,有如下公式: \[ cnt(n,p)=\sum_{i=1}^{\infty} \lfloor\frac{n 阅读全文
posted @ 2021-12-20 15:39 f(k(t)) 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 简介 康托展开是一个全排列到一个自然数的双射,常用于构建哈希表时的空间压缩。康托展开的实质是计算当前排列在所有由小到大的排列中的顺序,因此是可逆的。——百度百科 简单来说,通过康托展开可以确定一个给定的 \(n\) 位数的排列是字典序中的第几个排列(排名) 康托展开 给定一个 \(n\) 位数的排列 阅读全文
posted @ 2021-12-18 17:49 f(k(t)) 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 加法递推 由 \(\displaystyle \binom{n}{m}=\binom{n-1}{m}+\binom{n-1}{m-1}\) 求出 边界条件: \(\displaystyle \binom{1}{0}=\binom{1}{1}=1\) 和 \(\displaystyle \binom{ 阅读全文
posted @ 2021-12-16 18:51 f(k(t)) 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 简介 在许多情况下,我们都要维护一个数组的前缀和 \(s[i]=a[1]+a[2]+\cdots+a[i]\) ,但如果我们修改了其中一个 \(a[i]\) ,那么 \(s[i],s[i+1],\cdots,s[n]\) 都会发生变化。所以每次修改后我们都要对前缀和数组进行维护,在最坏的情况下复杂度 阅读全文
posted @ 2021-12-14 11:16 f(k(t)) 阅读(77) 评论(1) 推荐(1) 编辑
摘要: 定义 如果大于 \(1\) 的正整数 \(p\) 仅有正因子 \(1\) 和 \(p\) 则称 \(p\) 为素数,不是素数且大于 \(1\) 的整数为合数, \(1\) 既不是素数也不是合数 定理 算术基本定理 任何一个大于 \(1\) 的正整数 \(a\) 都能唯一分解为有限个质数的乘积,写作: 阅读全文
posted @ 2021-12-10 21:43 f(k(t)) 阅读(166) 评论(1) 推荐(0) 编辑