Kaosar və Dairə#12326

Kaosar və Dairə (Həll təhlili)

Problem Müəllifi:

AlKaosar Hussain

Hazırlayan:

AlKaosar Hussain

Redaktə edən:

Hasan Saleh (MathModel)

Həll

Funksiya ans = a_1 ilə başlayır.

Hər növbəti addım

\text{ans} \gets \text{ans} \& \text{(Öncəki elementlərin OR-u)}

edir.

Bitwise AND yalnız bitləri silə bilər, heç vaxt əlavə edə bilməz.

Buna görə də, son dəyər heç vaxt -dən çox ola bilməz.

Beləliklə, əgər f(p) = k istəyiriksə, onda ən sadə və təhlükəsiz seçim: a_1 = k-dır.

Bir dəfə -ya çevrildikdə, sadəcə onun bitlərini silməkdən qaçmalıyıq.

Qalan mövqelər üçün, a_1-in OR-u ilə bütün ədədləri etdiyimiz üçün 10^{18}-dən kiçik olan istənilən fərqli tam ədədləri seçin

və sonunda onları AND edərək -ya sahib oluruq, beləliklə cavab ilə başlayan və fərqli dəyərlərə sahib olan istənilən ardıcıllıqdır.

Komplekslik .

for _ in range(int(input())):
    n,k=map(int,input().split())
    ans=[k]
    cur=1
    while(len(ans)<n):
        if(cur!=k):
            ans.append(cur)
        cur+=1
    print(*ans)