CF1080D.Olya and magical square

普及+/提高

通过率:0%

时间限制:1.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Recently, Olya received a magical square with the size of 2n×2n2^n\times 2^n.

It seems to her sister that one square is boring. Therefore, she asked Olya to perform exactly kk splitting operations.

A Splitting operation is an operation during which Olya takes a square with side aa and cuts it into 4 equal squares with side a2\dfrac{a}{2}. If the side of the square is equal to 11, then it is impossible to apply a splitting operation to it (see examples for better understanding).

Olya is happy to fulfill her sister's request, but she also wants the condition of Olya's happiness to be satisfied after all operations.

The condition of Olya's happiness will be satisfied if the following statement is fulfilled:

Let the length of the side of the lower left square be equal to aa, then the length of the side of the right upper square should also be equal to aa. There should also be a path between them that consists only of squares with the side of length aa. All consecutive squares on a path should have a common side.

Obviously, as long as we have one square, these conditions are met. So Olya is ready to fulfill her sister's request only under the condition that she is satisfied too. Tell her: is it possible to perform exactly kk splitting operations in a certain order so that the condition of Olya's happiness is satisfied? If it is possible, tell also the size of the side of squares of which the path from the lower left square to the upper right one will consist.

最近,奥莉娅收到了一个大小为 2n×2n2^n\times 2^n 的魔法方格。

她的妹妹觉得单个方格太单调了,因此请求奥莉娅恰好执行 kk 次“分割”操作。

一次分割操作是指:奥莉娅取一个边长为 aa 的正方形,并将其切割成 4 个边长均为 a2\dfrac{a}{2} 的相等小正方形。若某正方形的边长已为 11,则不能再对其执行分割操作(参见示例以更好理解)。

奥莉娅很乐意满足妹妹的要求,但她同时也希望在所有操作完成后,仍能满足“奥莉娅的幸福条件”。

“奥莉娅的幸福条件”定义如下:

设左下角正方形的边长为 aa,则右上角正方形的边长也必须为 aa;并且,必须存在一条仅由边长为 aa 的正方形构成的路径,连接左下角正方形与右上角正方形;该路径上任意两个相邻正方形必须有公共边。

显然,在初始状态(即仅有一个正方形时),上述条件自然满足。因此,奥莉娅仅在能同时满足自己幸福条件的前提下,才愿意执行妹妹的请求。请告诉她:是否存在一种执行恰好 kk 次分割操作的顺序,使得“奥莉娅的幸福条件”得以满足?若存在,请同时给出该路径中所有正方形的边长 aa。

输入格式

The first line contains one integer tt (1≤t≤1031 \le t \le 10^3) — the number of tests.

Each of the following tt lines contains two integers nin_i and kik_i (1≤ni≤109,1≤ki≤10181 \le n_i \le 10^9, 1 \le k_i \le 10^{18}) — the description of the ii-th test, which means that initially Olya's square has size of 2ni×2ni2^{n_i}\times 2^{n_i} and Olya's sister asks her to do exactly kik_i splitting operations.

第一行包含一个整数 tt(1≤t≤1031 \le t \le 10^3)—— 测试用例的数量。

接下来的 tt 行中,每行包含两个整数 nin_i 和 kik_i(1≤ni≤109, 1≤ki≤10181 \le n_i \le 10^9,\ 1 \le k_i \le 10^{18})—— 描述第 ii 个测试用例,表示奥莉娅最初的正方形大小为 2ni×2ni2^{n_i}\times 2^{n_i},而奥莉娅的姐姐要求她恰好执行 kik_i 次分割操作。

输出格式

Print tt lines, where in the ii-th line you should output "YES" if it is possible to perform kik_i splitting operations in the ii-th test in such a way that the condition of Olya's happiness is satisfied or print "NO" otherwise. If you printed "YES", then also print the log2log_2 of the length of the side of the squares through space, along which you can build a path from the lower left square to the upper right one.

You can output each letter in any case (lower or upper).

If there are multiple answers, print any.

输出 tt 行,其中第 ii 行应输出 "YES"(如果在第 ii 个测试用例中,存在一种执行 kik_i 次分割操作的方式,使得满足奥莉娅的幸福条件),否则输出 "NO"。若你输出了 "YES",则还需在同一行中输出从左下角方格到右上角方格可构建路径的正方形边长的 log⁡2\log_2 值(以空格分隔)。

每个字母可使用任意大小写(小写或大写)输出。

若存在多个合法答案,输出任意一个即可。

输入输出样例

  • 输入#1

    3
    1 1
    2 2
    2 12

    输出#1

    YES 0
    YES 1
    NO

说明/提示

In each of the illustrations, the pictures are shown in order in which Olya applied the operations. The recently-created squares are highlighted with red.

In the first test, Olya can apply splitting operations in the following order:

Olya applies one operation on the only existing square.

The condition of Olya's happiness will be met, since there is a path of squares of the same size from the lower left square to the upper right one:

The length of the sides of the squares on the path is 11. log2(1)=0log_2(1) = 0.

In the second test, Olya can apply splitting operations in the following order:

Olya applies the first operation on the only existing square. She applies the second one on the right bottom square.

The condition of Olya's happiness will be met, since there is a path of squares of the same size from the lower left square to the upper right one:

The length of the sides of the squares on the path is 22. log2(2)=1log_2(2) = 1.

In the third test, it takes 55 operations for Olya to make the square look like this:

Since it requires her to perform 77 splitting operations, and it is impossible to perform them on squares with side equal to 11, then Olya cannot do anything more and the answer is "NO".

在每幅图示中,图片按奥莉娅执行操作的顺序排列。最新创建的正方形用红色高亮显示。

在第一个测试用例中,奥莉娅可以按如下顺序执行分割操作:

奥莉娅对唯一存在的正方形执行一次操作。

奥莉娅的幸福条件得以满足,因为存在一条由相同尺寸正方形构成的路径,该路径从左下角正方形延伸至右上角正方形:

路径上各正方形的边长为 11。log⁡2(1)=0\log_2(1) = 0。

在第二个测试用例中,奥莉娅可以按如下顺序执行分割操作:

奥莉娅首先对唯一存在的正方形执行第一次操作;然后对右下角的正方形执行第二次操作。

奥莉娅的幸福条件得以满足,因为存在一条由相同尺寸正方形构成的路径,该路径从左下角正方形延伸至右上角正方形:

路径上各正方形的边长为 22。log⁡2(2)=1\log_2(2) = 1。

在第三个测试用例中,奥莉娅需执行 55 次操作,才能使正方形呈现如下形态:

由于她总共需要执行 77 次分割操作,而边长为 11 的正方形无法再进行分割,因此奥莉娅无法继续操作,答案为 “NO”。

输入解题思路,AI测评打分。不知道怎么写?

首页