AT_abc349_d.[ABC349D] Divide Interval
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
对于非负整数 l,r (l<r),将从 l 到 r−1 的整数按顺序排列成数列 (l,l+1,…,r−2,r−1),记作 S(l,r)。另外,使用非负整数 i,j,可以表示成 S(2ij,2i(j+1)) 的数列被称为“好数列”。
给定非负整数 L,R (L<R)。请将数列 S(L,R) 分割成尽可能少的“好数列”,并输出分割的个数以及分割的方法。更严格地说,求满足以下条件的非负整数对序列 (l1,r1),(l2,r2),…,(lM,rM) 的最小正整数 M,并输出这些 (l1,r1),(l2,r2),…,(lM,rM)。
- L=l1<r1=l2<r2=⋯=lM<rM=R
- S(l1,r1),S(l2,r2),…,S(lM,rM) 均为好数列
此外,可以证明,使 M 最小的分割方法是唯一的。
输入格式
输入以以下格式从标准输入读入。
L R
输出格式
请按以下格式输出。
M
l1 r1
l2 r2
⋮
lM rM
请注意,(l1,r1),…,(lM,rM) 需要按升序输出。
输入输出样例
输入#1
3 19
输出#1
5 3 4 4 8 8 16 16 18 18 19
输入#2
0 1024
输出#2
1 0 1024
输入#3
3940649673945088 11549545024454656
输出#3
8 3940649673945088 3940649673949184 3940649673949184 4503599627370496 4503599627370496 9007199254740992 9007199254740992 11258999068426240 11258999068426240 11540474045136896 11540474045136896 11549270138159104 11549270138159104 11549545016066048 11549545016066048 11549545024454656
说明/提示
约束条件
- 0≤L<R≤260
- 输入均为整数
样例解释 1
S(3,19)=(3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18)。可以分割为以下 5 个好数列,这也是使分割个数最小的方法。
- S(3,4)=S(20⋅3,20⋅4)=(3)
- S(4,8)=S(22⋅1,22⋅2)=(4,5,6,7)
- S(8,16)=S(23⋅1,23⋅2)=(8,9,10,11,12,13,14,15)
- S(16,18)=S(21⋅8,21⋅9)=(16,17)
- S(18,19)=S(20⋅18,20⋅19)=(18)
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?