随笔分类 -  数学 - 组合

摘要:题目大意:求带标号 N 个点的生成树个数,两棵生成树相同当且仅当两棵树结构相同且边的生成顺序相同。 题解:学会了 prufer 序列。 prufer 序列是用来表示带标号的无根树的序列。 每种不同类型的带标号无根树会对应唯一的一个prufer序列。 生成方法:找到这棵树编号最小的叶子节点,将其相邻点 阅读全文
posted @ 2019-10-14 19:50 shellpicker 阅读(204) 评论(0) 推荐(0)
摘要:题目大意:求 $$ G^{\sum\limits_{d|N}\binom{n}{k}} mod\ \ 999911659 $$ 题解:卢卡斯定理+中国剩余定理 利用卢卡斯定理求出指数和式对各个素模数的解,再利用中国剩余定理合并四个解即可。 也可以在枚举 N 的因子的过程中,对于计算的四个解直接进行中 阅读全文
posted @ 2019-10-10 13:12 shellpicker 阅读(197) 评论(0) 推荐(0)
摘要:$N \le 2000, M \le 2000$ 直接利用递推式预处理即可。 代码如下 cpp include using namespace std; const int mod = 1e9 + 7; int main() { ios::sync_with_stdio(false); cin.ti 阅读全文
posted @ 2019-09-29 14:58 shellpicker 阅读(311) 评论(0) 推荐(0)
摘要:题目大意:给定一个 N\ M 的矩阵,定义一个矩形区域为一个“国旗”,满足:矩形区域可以按行划分成三个高度相同的部分,其中每一个部分中的颜色完全相同,第一部分的颜色与第二部分颜色不同,第二部分的颜色和第三部分的颜色不同。求给定的矩阵中有多少个不同的国旗,位置不同即为不同。 题解: 首先定义一个数组 阅读全文
posted @ 2019-06-17 15:45 shellpicker 阅读(510) 评论(0) 推荐(1)
摘要:题目大意:求从 1 到 N 中共有多少个数可以表示成 $M^K,K \gt 1$。$N \le 1e18$ 题解: 发现 N 很大,若直接枚举 M 的话有 1e9 级别的数据量,肯定超时,因此考虑枚举幂次。发现对于幂次为 k 的符合条件的数有 N 开 K 次方下取整个,同时注意到 k 的取值范围最大 阅读全文
posted @ 2019-06-07 08:54 shellpicker 阅读(199) 评论(0) 推荐(0)
摘要:题目大意:求多重集合的组合数, $N \le 1e14,M \le 20$。 题解: 考虑容斥原理,具体做法是枚举所有情况,即:枚举子集,第 i 位为 1 表示满足第 i 个条件,正负号采用 sign 进行判断。 对于本题的组合数来说,上指标过大,导致没办法预处理阶乘和逆元进行快速回答,不过下指标很 阅读全文
posted @ 2019-06-05 13:32 shellpicker 阅读(254) 评论(0) 推荐(0)
摘要:代码如下 阅读全文
posted @ 2019-05-23 16:23 shellpicker 阅读(159) 评论(0) 推荐(0)
摘要:题目大意:康托展开和逆康托展开模板题。 题解: 注:20!约为 2e18。 代码如下 cpp include using namespace std; const int maxn=21; typedef long long LL; char s[4]; LL n,q,a[maxn],fac[max 阅读全文
posted @ 2019-04-26 18:02 shellpicker 阅读(124) 评论(0) 推荐(0)