P14838 [THUPC 2026 初赛] 序列

题目背景

来自 2026 清华大学学生程序设计竞赛暨高校邀请赛(THUPC2026)初赛。 题解等资源可在 查看。

题目描述

你要回答 $T$ 次询问,每次询问给定两个正整数 $n, m$,问是否能构造一个正整数序列 $a_1, a_2, \cdots, a_n$,使得 $$ \exists\, 1 \le j \le n,\ a_j = m $$ 且存在非负整数 $t$ 满足 $$ \prod_{i=1}^{n} (a_i + a_{i+1}) = 2^{2t+1} $$ 其中 $a_{n+1} = a_1$。 如果可以构造,则输出 `YES`,否则输出 `NO`。

输入格式

从标准输入读入数据。 第一行一个正整数 $T$($1 \le T \le 10^6$),表示询问组数。 接下来 $T$ 行,每行两个正整数 $n, m$($1 \le n \le 2 \times 10^6,\ 1 \le m \le 2^{62} - 1$),表示你需要构造长度为 $n$ 的正整数序列,且序列中存在 $m$。

输出格式

输出到标准输出。 对于每组询问依次输出一行一个字符串,其为 `YES` 或 `NO`,表示对能否构造的判定。

说明/提示

对于第一组询问,取 $a_1 = 1,\ a_2 = 3,\ a_3 = 1$,则 $$ (1+3) \times (3+1) \times (1+1) = 32 = 2^5 $$ 满足题设条件。 对于第二组询问,由 $(a_1 + a_2)^2 = 2^{2t+1}$ 无正整数解即知。