概述



AcWing211. 计算系数

#include <bits/stdc++.h>
using namespace std;
const int mod = 10007 ;
int ksm(int a, int b, int p)
{
int ans = 1%p;
a = a%p;
while(b)
{
if(b&1) ans = (long long)ans * a % p;
a = (long long)a*a%p;
b>>=1;
}
return ans;
}
int jie(int n)
{
int ans = 1;
for(int i = 1; i <= n; i++)
{
ans = (long long)ans * i %mod;
}
return ans;
}
int niyuan(int x)
{
return ksm(x, mod-2, mod);
} int main()
{
int a,b,k,n,m;
cin >> a >> b >> k >> n >> m;
int fenzi = jie(k);
int fenmu = jie(k-m)*jie(m) % mod;
int CC = fenzi * niyuan(fenmu)%mod;
int asn = ksm(a, n, mod)*ksm(b, m, mod)%mod*CC%mod;
printf("%d", asn);
return 0;
}

多重集

AcWing212. 计数交换



Lucas定理

古代猪文

先对合数进行分解的代码:

#include <bits/stdc++.h>
using namespace std;
int main()
{
int x = 999911658;
for(int i = 2; (long long)i*i <= x; i++)
{
if(x % i==0)
{
printf("%d\t", i);
int cnt = 0;
while(x%i==0)
{
x /= i;
cnt ++;
}
printf("%d\n", cnt);
}
}
if(x > 1)
printf("%d\t1\n", x);
return 0;
}

运行结果

2	1
3 1
4679 1
35617 1

Catalan定理

证明如下:

证明要点:

  • 从反方向来进行考虑
  • 把一个不好计数的集合与一个已知的可计数的集合建立一一映射

容易得到:

总共有 \(C^n_{2n}\) 种情况。

现在思考不成立的情况:

建立映射:

P(不合法情况集合) Q(有n-1个0,n+1个1)
找到一个最短的前缀,不满足条件。(这个前缀里面有1的个数比0的个数多1) 然后把其他部分取反,得到q 同左,找到最短的前缀,使得前缀里面有1的个数比0的个数多1 然后把后面取反

容易证明:

已知一个不合法的原情况,可以映射到Q。

而在Q中,也可以映射到P。

说明两个集合相互包含,进而得到两个集合相等。

故个数相等。

所以不合法的情况有 \(C^{n-1}_{2n}\) 种。

相减,得到Katalan数列的个数。

\({C^{n}_{2n}}\over{n+1}\)

算法竞赛进阶指南0x36组合计数的更多相关文章

  1. 算法竞赛进阶指南 0x52 背包

    背包问题是线性背包中的一类重要问题. 0/1背包 模型: 给定N个物品,每一个物品具有两种属性,一个是体积 \(v_i\) ,另一个是容积 \(w_i\) . 有一个容积为M的背包,求一种方案,使得选 ...

  2. 算法竞赛进阶指南 0x43 线段树

    目录 线段树简介 线段树的简单代码实现 建树代码 修改操作 查询操作 线段树的查询操作的时间复杂度分析: AcWing245. 你能回答这些问题吗 思路 代码[时间复杂度:\(O( \space(N+ ...

  3. 《算法竞赛进阶指南》0x10 基本数据结构 Hash

    Hash的基本知识 字符串hash算法将字符串看成p进制数字,再将结果mod q例如:abcabcdefg 将字母转换位数字(1231234567)=(1*p9+2*p8+3*p7+1*p6+2*p5 ...

  4. 《算法竞赛进阶指南》1.4Hash

    137. 雪花雪花雪花 有N片雪花,每片雪花由六个角组成,每个角都有长度. 第i片雪花六个角的长度从某个角开始顺时针依次记为ai,1,ai,2,-,ai,6. 因为雪花的形状是封闭的环形,所以从任何一 ...

  5. bzoj 1787 && bzoj 1832: [Ahoi2008]Meet 紧急集合(倍增LCA)算法竞赛进阶指南

    题目描述 原题连接 Y岛风景美丽宜人,气候温和,物产丰富. Y岛上有N个城市(编号\(1,2,-,N\)),有\(N-1\)条城市间的道路连接着它们. 每一条道路都连接某两个城市. 幸运的是,小可可通 ...

  6. POJ1639 算法竞赛进阶指南 野餐规划

    题目描述 原题链接 一群小丑演员,以其出色的柔术表演,可以无限量的钻进同一辆汽车中,而闻名世界. 现在他们想要去公园玩耍,但是他们的经费非常紧缺. 他们将乘车前往公园,为了减少花费,他们决定选择一种合 ...

  7. 算法竞赛进阶指南 0x00 基本算法

    放在原来这个地方不太方便,影响阅读体验.为了读者能更好的刷题,另起一篇随笔. 0x00 基本算法 0x01 位运算 [题目][64位整数乘法] 知识点:快速幂思想的灵活运用 [题目][最短Hamilt ...

  8. 算法竞赛进阶指南--快速幂,求a^b mod p

    // 快速幂,求a^b mod p int power(int a, int b, int p) { int ans = 1; for (; b; b >>= 1) { if (b &am ...

  9. 算法竞赛进阶指南0x51 线性DP

    AcWing271. 杨老师的照相排列 思路 这是一个计数的题目,如果乱考虑,肯定会毫无头绪,所以我们从1号到最后一个依次进行安排. 经过反复实验,发现两个规律 每一行的同学必须是从左向右依次连续放置 ...

随机推荐

  1. 一个比 Nginx 功能更强大的 Web 服务器

    公众号关注 「开源Linux」 回复「学习」,有我为您特别筛选的学习资料~ Caddy 简介 Caddy 是一个 Go 编写的 Web 服务器,类似于 Nginx,Caddy 提供了更加强大的功能,随 ...

  2. 关于前端ajax请求获取数据成功之后无法操作数据的原因及解决方法

    前言:做项目的时候我用ajax请求json数据,遍历使用数据时却发现页面无响应.关于这个问题今天有个朋友又问了我一次,记录一下.由于我没有记录,这里用我朋友的图片. 代码现象: 这里他是使用alert ...

  3. Java学习笔记-基础语法Ⅶ-集合

    集合 集合类特点:提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变 这里需要回顾一下,因为数组和字符串一旦创建,就不可改变,需要区分一下 import java.util.ArrayLi ...

  4. Linux磁盘空间查看及空间满的处理

    问题 在部署应用到测试环境的时候,有些文件同步出错,最后定位到测试服务器空间满了. 解决 查看磁盘空间还剩多少空间 df -h 查看根目录下每个目录占用空间大小 du --max-depth=1 -h ...

  5. 112_Power Pivot 销售订单按 sku 订单类型特殊分类及占比相关

    博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 经过了一个双十一后,天天面对的都是订单.于是有了关于销售订单按sku类型分类的需求. 说明:(暂且不讨论这样分类 ...

  6. nodejs使用 svg-captcha 做验证码及验证

    一.需求 使用 nodejs 做后端开发,需要请求验证码,在 github 上看到了 svg-captcha 这个库,发现他是将 text 转 svg 进行返回的,安全性也有保证,不会被识别成文字. ...

  7. pymysql.err.OperationalError: (1054, "Unknown column 'aa' in 'field list'")(已解决)

    错误描述: 今天使用python连接mysql数据库进行数据添加时,出现报错"pymysql.err.OperationalError: (1054, "Unknown colum ...

  8. 记一次生产事故的排查与优化——Java服务假死

    一.现象 在服务器上通过curl命令调用一个Java服务的查询接口,半天没有任何响应.关于该服务的基本功能如下: 1.该服务是一个后台刷新指示器的服务,即该服务会将用户需要的指示器数据提前计算好,放入 ...

  9. 【Java面试】什么是幂等?如何解决幂等性问题?

    一个在传统行业工作了7年的粉丝私信我. 他最近去很多互联网公司面试,遇到的很多技术和概念都没听过. 其中就有一道题是:"什么是幂等.如何解决幂等性问题"? 他说,这个概念听都没听过 ...

  10. drools动态增加、修改、删除规则

    目录 1.背景 2.前置知识 1.如何动态构建出一个kmodule.xml文件 2.kmodule.xml应该被谁加载 3.我们drl规则内容如何加载 4.动态构建KieContainer 3.需求 ...