CF261C Maxim and Matrix

题目描述

Maxim 喜欢以一种特殊的方式填写矩阵。下面是填写一个 $(m+1) \times (m+1)$ 大小矩阵的伪代码: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF261C/2ee53d83c775f11a8b5c62a496d38d42095666d0.png) Maxim 让你计算,有多少个 $m$ 满足 $1 \leq m \leq n$,使得结果矩阵中第 $m+1$ 行所有单元格内的值的和等于 $t$。 表达式 $(x \ \text{xor}\ y)$ 表示将 $x$ 和 $y$ 进行按位异或操作。此操作在所有现代编程语言中都存在。例如,在 C++ 和 Java 语言中用字符“^”表示,在 Pascal 中用“xor”表示。

输入格式

一行包含两个整数 $n$ 和 $t$,其中 $1 \leq n, t \leq 10^{12}$,并且 $t \leq n+1$。 请不要在 C++ 中使用 %lld 进行 64 位整数的输入输出。建议使用 cin、cout 流或 %I64d 格式。

输出格式

一行输出一个整数,表示满足条件的 $m$ 的个数。

说明/提示

由 ChatGPT 5 翻译