小札 Combinatorics 2
对于 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}\)。
我们来看几个一般的组合恒等式。
- \(\displaystyle\binom{n}{k}=\frac{n}{k}\binom{n-1}{k-1}\);
- \(\displaystyle\binom{n}{k}=\binom{n-1}{k-1}+\binom{n-1}{k}\);
- \(\displaystyle\sum_{k=0}^nk\binom{n}{k}=n2^{n-1}\);
- \(\displaystyle\sum_{k=0}^{n}k^2\binom{n}{k}=n(n+1)2^{n-2}\);
- \(\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}\);
- \(\displaystyle\binom{n}{k}=(-1)^k\binom{k-n-1}{k}\);
- \(\displaystyle\sum_{k=0}^m(-1)^k\binom{n}{k}=(-1)^m\binom{n-1}{m}\);
- \(\displaystyle\binom{n}{r}\binom{r}{k}=\binom{n}{k}\binom{n-k}{r-k}\);
- \(\displaystyle\sum_{k=0}^r\binom{m}{k}\binom{n}{r-k}=\binom{m+n}{r}\);(Vandermonde Convolution)
我们一个一个的来看。
- 这个我无法找到除了代数解释以外的方法来诠释它的含义;
- 经典的 Pascal's Formula,组合意义即钦定一个物品不选。适用场景很多,经常反过来用;
- 带权变下项求和,考虑这样的组合意义:在 \(n\) 个物品中选出 \(k\) 个,再从这 \(k\) 个物品中选出一个组成 1-tuples 的方案数。对应到 r.h.s.,反过来钦定 1-tuples,然后计算系数。
- 同理,组合意义即在 \(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}\)。
- 变上项求和,考虑 \(n+1\) 个物品,每次钦定第 \(1,2,\dots,n+1\) 个不选,左右两式即相等,例题 codechef - CSEQ Count Sequences。
- 这个式子我理解不能,但是运算有封闭性,再算一次可以变回去。
- 用式 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}{}\) 。
- 组合意义:\(\{a_{n}\}\) 的 \(r\)-subsets 的 \(k\)-subsets 数,r.h.s. 即在 \(\{a_n\}\) 中选出 \(k\)-subsets,再在 \({a_n}\setminus k\text{-subsets}\) 中选 \(r-k\)-subsets。
- 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的更多相关文章
- PC端一些非经典兼容性问题小札
IE10默认在input框中输入内容后会显示一个‘X’按钮,方便删除输入的所有内容. 在password输入框显示一个眼睛的按钮,去掉叉叉和眼睛的方法如下: ::-ms-clear { display ...
- Python小札
在Python中,等号(=)是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量如: a = 123 #a是整数 print(a) a = 'ABC' #a变为字 ...
- 曲率已驱动了头发——深度分析谷歌AlphaGo击败职业棋手
这篇是我们自开设星际随笔以来写得最长的一篇.我们也花了不少力气.包括把那5盘棋各打了两遍的谱,包括从Nature官网上把那篇谷歌的报告花了200元下载下来研究它的算法(后来发现谷 歌网站上可以免费下载 ...
- .NET平台开源项目速览-最快的对象映射组件Tiny Mapper之项目实践
心情小札:近期换了工作,苦逼于22:00后下班,房间一篇狼藉~ 小翠鄙视到:"你就适合生活在垃圾堆中!!!" 晚上浏览博客园 看到一篇非常实用的博客:.NET平台开源项目速览(14 ...
- Ruby 连接MySQL数据库
使用Ruby连接数据库的过程还真的是坎坷,于是写点文字记录一下. 简介 Ruby简介 RubyGems简介 包管理之道 比较著名的包管理举例 细说gem 常用的命令 准备 驱动下载 dbi mysql ...
- 读吴恩达算-EM算法笔记
最近感觉对EM算法有一点遗忘,在表述的时候,还是有一点说不清,于是重新去看了这篇<CS229 Lecture notes>笔记. 于是有了这篇小札. 关于Jensen's inequali ...
- SQL SERVER 事务的使用(tran)
sql server事务的使用是为了确保数据的一致性. 通常写法 begin tran --sql 语句1 --sql 语句2 --sql 语句3 commit tran 上面写法存在隐患,当操作(增 ...
- 关于SpringBoot如何返回视图
别人已经写过了,我就不重复造轮子了.我赞成他的方案:Spring Boot使用方法小札(1):Web应用返回jsp页面 如果配置完之后,访问相应的Controller 还是得不到对应的页面,考虑用以下 ...
- Facebook也炒币吗?Libra币是什么?
Facebook 在上周发布了加密数字货币,称为 Libra币. 太火爆了,很多人都在关注和讨论,包括一些科技大佬们都很积极的讨论(当然,这里指的是真正的科技大佬,比如 马化腾.王兴等,而不是指哪些割 ...
- Libra和中国央行数字货币(DCEP)的对比
最近偶然和朋友讨论起Libra,对Libra和央行的数字货币方案很感兴趣.梳理了阅读资料(参考见文末)和自己的思考,发知乎留个记录. Libra 是什么? 无国界货币 + 为全球数十亿人服务的金融基础 ...
随机推荐
- JS和Document
对象1.new var obj = new Object(); 2.函数声明对象 function Human () {}: 3.var obj = {}; 大括号 就是对象var obj = {}; ...
- Java中的金钱陷阱
前言 有多少小伙伴是被标题 骗 吸引进来的呢,我可不是标题党,今天的文章呢确实跟"金钱"有关系. 但是我们说的不是过度追求金钱而掉入陷阱,而是要说一说在Java程序中,各种跟金钱运 ...
- 通过redis学网络(2)-redis网络模型
本系列主要是为了对redis的网络模型和集群原理进行学习,我会用golang实现一个reactor网络模型,并实现对redis协议的解析. 系列源码已经上传github https://github. ...
- C++面试八股文:什么是RAII?
某日二师兄参加XXX科技公司的C++工程师开发岗位第13面: 面试官:什么是RAII? 二师兄:RAII是Resource Acquisition Is Initialization的缩写.翻译成中文 ...
- Git 多账号配置
本地登录多账号并连接对应的远程仓库,主要就是 密钥配对,我这里刚开始配了密钥也将密钥复制到ssh但是还是连接不到第二个远程仓库,后来发现是需要 密钥代理 1.在当前项目下更改git账号信息: git ...
- Docker和Kubernetes与容器自动化扩展:最佳实践
目录 1. 引言 2. 技术原理及概念 2.1 基本概念解释 2.2 技术原理介绍 2.3 相关技术比较 3. 实现步骤与流程 3.1 准备工作:环境配置与依赖安装 3.2 核心模块实现 3.3 集成 ...
- K8S | 容器和Pod组件
对比软件安装和运行: 一.场景 作为研发人员,通常自己电脑的系统环境都是非常复杂,在个人的习惯上,是按照下图的模块管理电脑的系统环境: 对于「基础设施」.「主机操作系统」.「系统软件」来说,通常只做配 ...
- 【干货向】我想试试教会你如何修改Git提交信息
Git是目前IT行业使用率最高的版本控制系统,相信大家在日常工作中也经常使用,每次Git提交都会包含提交信息,常用的包括说明.提交人和提交时间等,此篇文章主要向大家介绍下如何修改这些信息,这些命令在正 ...
- Redis的设计与实现(5)-整数集合
整数集合(intset)是集合键的底层实现之一: 当一个集合只包含整数值元素, 并且这个集合的元素数量不多时, Redis 就会使用整数集合作为集合键的底层实现. 整数集合 (intset) 是 Re ...
- Linux0.11内核笔记(-)
基础知识 C语言.汇编知识.嵌入式汇编.x86处理器和编程的相关知识和.UNIX操作系统设计 Linus在最初开发Linux操作系统时参考了MINIX操作系统:<操作系统:设计与实现>一种 ...