#G0103. 一道复杂的构造题【2025暑假集训T1】

一道复杂的构造题【2025暑假集训T1】

题目描述

江桥 需要你构造一个长度为 nn 的排列,并将其分割成 不多于 100100 个 不相交的连续区间 ,使得每个区间的元素的 gcd\gcd(即最大公约数) ,按位或 起来恰好等于整数 mm。 如果能构造,输出任意一种方案。

如果构造不了,输出 −1

输入格式

输入两个整数 n,mn,m,代表排列的长度和目标整数。

输出格式

如果无法构造,直接输出 −1

否则,按以下格式输出:

第一行输出一个长度为 nn 的排列。

第二行输出你想划分的区间数量 kk

随后 kk 行,每行输出两个整数 li,ril_i,r_i,表示划分区间的左右端点。

注意,你划分的区间必须是连续的,即你的输出必须满足 $1 \leq l_i \leq r_i \leq n \space (1 \leq i \leq k)$ 且 li=ri1+1(i>1)l_i = r_{i-1}+1(i > 1)l1=1,rk=nl_1 = 1,r_k = n

6 7
6 5 4 3 2 1
4
1 1
2 3
4 5
6 6
3 2
-1

样例解释

对于第一个样例:

11 组,gcd(6,6)=6\gcd(6,6)=6

22 组,gcd(5,4)=1\gcd(5,4)=1

33 组,gcd(3,2)=1\gcd(3,2)=1

44 组,gcd(1,1)=1\gcd(1,1)=1

四组的 gcd\gcd 按位或起来恰好为 77

数据规模与约定

由于大样例具有提示性,无下发文件。

有合理的子任务依赖。

子任务编号 nn≤ 特殊性质 分值
11 1010 1010
22 1717 2020
33 10510^{5} mm 为偶数 1010
44 mnm \leq n 2020
55 4040

对于 100%100\% 的数据:保证 1n,m1051 \leq n,m \leq10^{5}