对于 Newton Expansion,式子本身的证明其实无甚可翻新的花样,但是题还是很有意思的。比如 codeforces - 1332E Height All the Same 这个。

首先给出几个性质:每个 cell 上的数字奇偶性才是需要关注的;如果 \(n\times m\) 为奇数,永远有解;如果 \(n\times m\) 为偶数,当 \(\sum\sum a_{i,j}\bmod2\) 为偶数时有解。应该都不需要证明。

奇数的答案不赘,我们可以写出偶数的答案式子:\(\displaystyle\sum_{i=0}^{\lfloor\frac{nm}{2}\rfloor}a^{2i}b^{nm-2i}\binom{nm}{2i}\),\(a,b\) 分别是 \([l,r]\) 中偶 / 奇的数量。然后你注意这个式子长得很像 Newton Expansion 的形式,容易构造出答案为 \(\frac{(a+b)^{nm}+(a+b)^{nm}}{2}\)。


我们来看几个一般的组合恒等式。

  1. \(\displaystyle\binom{n}{k}=\frac{n}{k}\binom{n-1}{k-1}\);
  2. \(\displaystyle\binom{n}{k}=\binom{n-1}{k-1}+\binom{n-1}{k}\);
  3. \(\displaystyle\sum_{k=0}^nk\binom{n}{k}=n2^{n-1}\);
  4. \(\displaystyle\sum_{k=0}^{n}k^2\binom{n}{k}=n(n+1)2^{n-2}\);
  5. \(\displaystyle\sum_{l=0}^n\binom{l}{k}=\binom{n+1}{k+1}\Longrightarrow\sum_{k=0}^n\binom{r+k}{k}=\binom{r+n+1}{r+1}=\binom{r+n+1}{n}\);
  6. \(\displaystyle\binom{n}{k}=(-1)^k\binom{k-n-1}{k}\);
  7. \(\displaystyle\sum_{k=0}^m(-1)^k\binom{n}{k}=(-1)^m\binom{n-1}{m}\);
  8. \(\displaystyle\binom{n}{r}\binom{r}{k}=\binom{n}{k}\binom{n-k}{r-k}\);
  9. \(\displaystyle\sum_{k=0}^r\binom{m}{k}\binom{n}{r-k}=\binom{m+n}{r}\);(Vandermonde Convolution)

我们一个一个的来看。

  1. 这个我无法找到除了代数解释以外的方法来诠释它的含义;
  2. 经典的 Pascal's Formula,组合意义即钦定一个物品不选。适用场景很多,经常反过来用;
  3. 带权变下项求和,考虑这样的组合意义:在 \(n\) 个物品中选出 \(k\) 个,再从这 \(k\) 个物品中选出一个组成 1-tuples 的方案数。对应到 r.h.s.,反过来钦定 1-tuples,然后计算系数。
  4. 同理,组合意义即在 \(n\) 个物品中选出 \(k\) 个,再从这 \(k\) 个物品中可重地选出两个物品组成无序 2-tuples 的方案数。对应到 r.h.s.,反过来钦定 2-tuples,再考虑系数。需要分类讨论,当选出的物品不相同,为 \(n(n-1)2^{n-2}\),当相同时,为 \(n^22^{n-1}\),加在一起即 \(n(3n-1)2^{n-2}\)。
  5. 变上项求和,考虑 \(n+1\) 个物品,每次钦定第 \(1,2,\dots,n+1\) 个不选,左右两式即相等,例题 codechef - CSEQ Count Sequences
  6. 这个式子我理解不能,但是运算有封闭性,再算一次可以变回去。
  7. 用式 6,得 \(\displaystyle \sum_{k=0}^m(-1)^k\binom{n}{k}=\sum_{k=0}^m\binom{k-n-1}{k}=\sum_{k=0}^m\binom{k-n-1}{}\) 。
  8. 组合意义:\(\{a_{n}\}\) 的 \(r\)-subsets 的 \(k\)-subsets 数,r.h.s. 即在 \(\{a_n\}\) 中选出 \(k\)-subsets,再在 \({a_n}\setminus k\text{-subsets}\) 中选 \(r-k\)-subsets。
  9. l.h.s. 和 r.h.s. 的意义都是 \(\{a_{m+n}\}\) 的 \(r\)-subsets 数。

来看一些题。

  • 「acmhdu - 5794」A Simple Chess link:首先注意到这个走路的方式就是象棋马走日,然后做一个像 codeforces - 559C Gerald and Giant Chess 一样的 dp,有些细节需要注意。
  • 「codeforces - 839D」Winter is here link:数数日门题。考虑反过来算每种 \(\gcd\) 的贡献次数。

小札 Combinatorics 2的更多相关文章

  1. PC端一些非经典兼容性问题小札

    IE10默认在input框中输入内容后会显示一个‘X’按钮,方便删除输入的所有内容. 在password输入框显示一个眼睛的按钮,去掉叉叉和眼睛的方法如下: ::-ms-clear { display ...

  2. Python小札

    在Python中,等号(=)是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量如: a = 123 #a是整数 print(a) a = 'ABC' #a变为字 ...

  3. 曲率已驱动了头发——深度分析谷歌AlphaGo击败职业棋手

    这篇是我们自开设星际随笔以来写得最长的一篇.我们也花了不少力气.包括把那5盘棋各打了两遍的谱,包括从Nature官网上把那篇谷歌的报告花了200元下载下来研究它的算法(后来发现谷 歌网站上可以免费下载 ...

  4. .NET平台开源项目速览-最快的对象映射组件Tiny Mapper之项目实践

    心情小札:近期换了工作,苦逼于22:00后下班,房间一篇狼藉~ 小翠鄙视到:"你就适合生活在垃圾堆中!!!" 晚上浏览博客园 看到一篇非常实用的博客:.NET平台开源项目速览(14 ...

  5. Ruby 连接MySQL数据库

    使用Ruby连接数据库的过程还真的是坎坷,于是写点文字记录一下. 简介 Ruby简介 RubyGems简介 包管理之道 比较著名的包管理举例 细说gem 常用的命令 准备 驱动下载 dbi mysql ...

  6. 读吴恩达算-EM算法笔记

    最近感觉对EM算法有一点遗忘,在表述的时候,还是有一点说不清,于是重新去看了这篇<CS229 Lecture notes>笔记. 于是有了这篇小札. 关于Jensen's inequali ...

  7. SQL SERVER 事务的使用(tran)

    sql server事务的使用是为了确保数据的一致性. 通常写法 begin tran --sql 语句1 --sql 语句2 --sql 语句3 commit tran 上面写法存在隐患,当操作(增 ...

  8. 关于SpringBoot如何返回视图

    别人已经写过了,我就不重复造轮子了.我赞成他的方案:Spring Boot使用方法小札(1):Web应用返回jsp页面 如果配置完之后,访问相应的Controller 还是得不到对应的页面,考虑用以下 ...

  9. Facebook也炒币吗?Libra币是什么?

    Facebook 在上周发布了加密数字货币,称为 Libra币. 太火爆了,很多人都在关注和讨论,包括一些科技大佬们都很积极的讨论(当然,这里指的是真正的科技大佬,比如 马化腾.王兴等,而不是指哪些割 ...

  10. Libra和中国央行数字货币(DCEP)的对比

    最近偶然和朋友讨论起Libra,对Libra和央行的数字货币方案很感兴趣.梳理了阅读资料(参考见文末)和自己的思考,发知乎留个记录. Libra 是什么? 无国界货币 + 为全球数十亿人服务的金融基础 ...

随机推荐

  1. Java(break、continue、label)

    1.break break在任何循环语句的主体部分,均可用break控制循环的流程.break用于强行退出循环,不执行循环中剩余的语句.(break语句也在switch语句中使用) 例如:循环输出10 ...

  2. SpringBoot开发简单接口流程

    SpringBoot开发接口 初始化 新建项目 (1)使用 IDEA 的过程,新建Project,左侧选 Spring Initializr,点Next (2)选 8 版本,点Next (3)左侧选择 ...

  3. K8S 证书详解(认证)

    K8S 证书介绍 在 Kube-apiserver 中提供了很多认证方式,其中最常用的就是 TLS 认证,当然也有 BootstrapToken,BasicAuth 认证等,只要有一个认证通过,那么 ...

  4. 用声明式宏解析 Rust 语法

    在上一篇 Rust 声明式宏中的 Metavariables 有哪些 的基础上, 今天尝试解析一下 Rust 中的几种 item.我们知道一个 crate 是由 item 组成的,每一个 fn str ...

  5. 新建maven项目的时候idea的一些设置

    1.统一字符编码 2.开启注解生效激活 3.选择编译编码格式 4.设置忽略文件

  6. python中的数据容器

    第六章:Python数据容器 数据容器入门 什么是数据容器 一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素,每一个元素,可以是任意类型的数据,如字符串.数字.布尔等. 根据特点的不同分 ...

  7. 树莓派4B-细分驱动步进电机

    树莓派4B-细分驱动步进电机 项目介绍 利用4B树莓派控制步进电机转动,精度可达:0.0144度 (即360度/25000) 适用于非常精密的角度转动. 舵机的精度为1度,无法实现超高精度控制. 硬件 ...

  8. pip install lxml 总是失败

  9. Centos7中搭建Redis6集群操作步骤

    目录 下载安装包 解压安装装包 安装依赖 安装 创建目录 设置配置文件 创建启动服务 制作启动文件 启动并验证Redis 开放防火墙端口 创建集群 集群其他操作 注意 下载安装包 # 进入软件下载目录 ...

  10. 在mapper.xml中遍历添加多条数据

    <insert id="saveAuditDf" parameterType="java.util.List"> insert into audit ...