Description

Link.

求 \(\begin{Bmatrix}n \\ m\end{Bmatrix}\bmod2\)

Solution

\[\begin{aligned}
\begin{Bmatrix}n \\ m\end{Bmatrix}\bmod2
&=\left(\begin{Bmatrix}n-1 \\ m-1\end{Bmatrix}+m\begin{Bmatrix}n-1 \\ m\end{Bmatrix}\right)\bmod2 \\
&=\begin{cases}
\begin{Bmatrix}n-1 \\ m-1\end{Bmatrix}\bmod2,m\equiv0\space(\operatorname{mod}2) \\
\left(\begin{Bmatrix}n-1 \\ m-1\end{Bmatrix}+\begin{Bmatrix}n-1 \\ m\end{Bmatrix}\right)\bmod2,m\equiv1\space(\operatorname{mod}2)
\end{cases}
\end{aligned}
\]

\(m\equiv1\space(\operatorname{mod}2)\) 的情况为组合数的递推。

转化一下,把填表转移换成刷表,即

  • 当 \(m\equiv0\space(\operatorname{mod}2)\) 时,\(\begin{Bmatrix}n \\ m\end{Bmatrix}\) 转移到 \(\begin{Bmatrix}n+1 \\ m+1\end{Bmatrix}\)。

  • 当 \(m\equiv1\space(\operatorname{mod}2)\) 时,\(\begin{Bmatrix}n \\ m\end{Bmatrix}\) 转移到 \(\begin{Bmatrix}n+1 \\ m+1\end{Bmatrix}\) 和 \(\begin{Bmatrix}n+1 \\ m\end{Bmatrix}\)。

那么这个题目就转化成了在表格上 \((0,0)\) 走到 \((n,m)\) 的路径条数 \(\operatorname{mod}2\) 问题。

两种情况都可以转移到 \(\begin{Bmatrix}n+1 \\ m+1\end{Bmatrix}\),为了方便起见,我们定义这种情况为向右上转移,把 \(\begin{Bmatrix}n+1 \\ m\end{Bmatrix}\) 定义为向上转移。

因为我们转移只能向上或右上走,所以只会走 \(n\) 步,其中 \(m\) 次向右上转移,\(n-m\) 次向右转移。

我们一共有 \(\lfloor\frac{m+1}{2}\rfloor\) 次机会向右转移(只能从奇数走)。

相当于我们现在需要把转移的过程分成 \(n-m\) 段,每一段的内部全部都是向右上转移,这样我们才能到达 \((n,m)\)。

用盒子与球的语言来描述,就是一共就有 \(n-m+\lfloor\frac{m+1}{2}\rfloor\) 个球(这里理解起来其实特别麻烦)(不过只是对于我这种组合差的人),分成 \(\lfloor\frac{m+1}{2}\rfloor\) 段,隔板即可。

于是 \(\begin{Bmatrix}n \\ m\end{Bmatrix}\bmod2={n-m+\lfloor\frac{m+1}{2}\rfloor-1\choose\lfloor\frac{m+1}{2}\rfloor-1}\bmod2\)。

关于组合数奇偶性,我这篇博客里写过,再贴上来:

结论:\(\dbinom{n}{m}\equiv0\space(\operatorname{mod}2)\) 当且仅当 \(n\operatorname{bitand}m=m\)。

证明(也许不是特别严谨):我们可以知道:

\[{n\choose m}={\lfloor\frac{n}{2}\rfloor\choose\lfloor\frac{m}{2}\rfloor}\times{n\bmod 2\choose m\bmod2}={\lfloor\frac{\lfloor\frac{n}{2}\rfloor}{2}\rfloor\choose\lfloor\frac{\lfloor\frac{m}{2}\rfloor}{2}\rfloor}\times {\lfloor\frac{n}{2}\rfloor\bmod2\choose\lfloor\frac{m}{2}\rfloor\bmod2}\times{n\bmod 2\choose m\bmod2}=\cdots
\]

我们发现:

\[{\lfloor\frac{\lfloor\frac{\lfloor\frac{n}{2}\rfloor}{2}\rfloor}{\cdots}\rfloor\choose\lfloor\frac{\lfloor\frac{\lfloor\frac{m}{2}\rfloor}{2}\rfloor}{\cdots}\rfloor}
\]

这一坨,就是在一直进行二进制移位,\(\operatorname{shr}1\)。

那么我们可以得出一个结论:如果对于我们记 \((n)_{k}\) 表示 \(n\) 在二进制意义下的第 \(k\) 位。\((n)_{k}\in[0,1]\)

那么对于 \(\forall i\),有 \((n)_{i}=0\) 且 \((m)_{i}=1\),那么 \(\dbinom{n}{m}\equiv0\space(\operatorname{mod} 2)\)。

所以 \(n\operatorname{bitand}m=m\),证毕。

答案显然。

#include <cstdio>

int N, M;

int main () {
int TC; scanf ( "%d", &TC ); while ( TC -- > 0 ) {
scanf ( "%d%d", &N, &M );
if ( ! N && ! M ) puts ( "1" );
else if ( ! N || ! M || N < M ) puts ( "0" );
else if ( ( ( N - M + ( ( M + 1 ) >> 1 ) - 1 ) & ( ( ( M + 1 ) >> 1 ) - 1 ) ) == ( ( ( M + 1 ) >> 1 ) - 1 ) ) puts ( "1" );
else puts ( "0" );
}
return 0;
}

Solution -「SP 106」BINSTIRL的更多相关文章

  1. Solution -「SP 6779」GSS7

    \(\mathcal{Description}\)   给定一棵 \(n\) 个点的带点权树,\(q\) 次操作: 路径点权赋值. 询问路径最大子段和(可以为空).   \(n,q\le10^5\). ...

  2. Solution -「ARC 104E」Random LIS

    \(\mathcal{Description}\)   Link.   给定整数序列 \(\{a_n\}\),对于整数序列 \(\{b_n\}\),\(b_i\) 在 \([1,a_i]\) 中等概率 ...

  3. Solution -「CTS 2019」「洛谷 P5404」氪金手游

    \(\mathcal{Description}\)   Link.   有 \(n\) 张卡牌,第 \(i\) 张的权值 \(w_i\in\{1,2,3\}\),且取值为 \(k\) 的概率正比于 \ ...

  4. Solution -「BZOJ 3812」主旋律

    \(\mathcal{Description}\)   Link.   给定含 \(n\) 个点 \(m\) 条边的简单有向图 \(G=(V,E)\),求 \(H=(V,E'\subseteq E)\ ...

  5. Solution -「CF 1342E」Placing Rooks

    \(\mathcal{Description}\)   Link.   在一个 \(n\times n\) 的国际象棋棋盘上摆 \(n\) 个车,求满足: 所有格子都可以被攻击到. 恰好存在 \(k\ ...

  6. Solution -「Gym 102759G」LCS 8

    \(\mathcal{Description}\)   Link.   给定 \(m\),和长度为 \(n\),字符集为大写字母的字符串 \(s\),求字符集相同且等长的字符串 \(t\) 的数量,使 ...

  7. Solution -「ZJOI 2019」「洛谷 P5326」开关

    \(\mathcal{Description}\)   Link.   有 \(n\) 个开关,初始时所有开关的状态为 \(0\).给定开关的目标状态 \(s_1,s_2,\cdots,s_n\).每 ...

  8. Solution -「简单 DP」zxy 讲课记实

    魔法题位面级乱杀. 「JOISC 2020 Day4」治疗计划 因为是不太聪明的 Joker,我就从头开始理思路了.中途也会说一些和 DP 算法本身有关的杂谈,给自己的冗长题解找借口. 首先,治疗方案 ...

  9. Solution -「基环树」做题记录

    写的大多只是思路,比较简单的细节和证明过程就不放了,有需者自取. 基环树简介 简单说一说基环树吧.由名字扩展可得这是一类以环为基础的树(当然显然它不是树. 通常的表现形式是一棵树再加一条非树边,把图画 ...

  10. Solution -「WC 2022」秃子酋长

    \(\mathscr{Description}\)   Link. (It's empty temporarily.)   给定排列 \(\{a_n\}\),\(q\) 次询问,每次给出 \([l,r ...

随机推荐

  1. C温故补缺(十八):网络编程

    计算机网络 参考:TCP三次握手详解. OSI模型 简单分层: 其中,链路层还可以分出物理层和数据链路层.应用层可以分出会话层,表示层和应用层. 七层模型: 链路层:只是物理的比特流和简单封装的数据帧 ...

  2. 【Leetcode】 #9 回文数

    判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数.示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 - ...

  3. C++ 学习笔记 (一)

    C++标准化组织 https://isocpp.org/std/status http://open-std.org/JTC1/SC22/WG21/ why C++王者归来? https://cool ...

  4. CF1770F Koxia and Sequence

    一步都没想到,一定是状态不好吧,一定吧一定吧? 加训数数! 题意 给定 \(n, x, y\),定义好的序列 \(\{a_i\}_{i = 1}^n\) 满足 \(\sum\limits_{i = 1 ...

  5. mysql处理delete后不释放磁盘空间

    myisam:optimize table table_name innodb:alter table table.name engine='innodb' 1. 问题描述在使用mysql的时候有时候 ...

  6. 当使用POI打开Excel文件遇到out of memory时该如何处理?

    摘要:本文由葡萄城技术团队于博客园原创并首发.转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 当我们开发处理Excel文件时,Apache POI 是许多人 ...

  7. .NET周报 【7月第1期 2023-07-02】

    国内文章 C# 实现 Linux 视频聊天.远程桌面(源码,支持信创国产化环境,银河麒麟,统信UOS) https://www.cnblogs.com/shawshank/p/17420469.htm ...

  8. PowerBuilder从入坑到放弃(二)编码规范

    前言 上一篇我们从0到1用pb开发了一个helloworld程序,并成功将开发的程序编译打包并且制作了安装包. 程序员最讨厌的莫过于写文档和别人不写注释. 不知道大家会不会和我一样,在找bug时,有段 ...

  9. 报错 no currentsessioncontext configured!

    no currentsessioncontext configured! 使用hibernate框架报错 配置了session工厂类,使用getCurrentSession();时候引起的,原因是cu ...

  10. 用 Golang 从0到1实现一个高性能的 Worker Pool(一) - 每天5分钟玩转 GPT 编程系列(3)

    目录 1. 概述 2. 设计 2.1 让 GPT-4 给出功能点 2.2 自己总结需求,再给 GPT 派活 3. 实现 3.1 你先随意发挥 3.2 你得让 Worker 跑起来呀 3.3 你说说 P ...