AT_arc149_f.[ARC149F] Rational Number System
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
设 r>1 为有理数,p 为 r 的分子,q 为 r 的分母。即 p,q 是正整数,满足 r=qp 且 gcd(p,q)=1。
正整数 n 的 r 进制展开 定义为满足以下所有条件的整数序列 (a1,…,ak):
- ai 是 0 到 p−1 之间的整数;
- a1=0;
- n=∑i=1kairk−i。
可以证明,任意正整数 n 都有唯一的 r 进制展开。
给定正整数 p,q,N,L,R,其中 p,q 满足 1.01≤qp。
将所有不超过 N 的正整数,按其 qp 进制展开的字典序从小到大排列,输出第 L,L+1,…,R 个正整数。
注意,正整数的输入输出均使用通常的十进制表示。
什么是数列的字典序?
设数列 A=(A1,…,A∣A∣),B=(B1,…,B∣B∣),若满足下列 1 或 2,则称 A 的字典序小于 B:
- ∣A∣<∣B∣ 且 (A1,…,A∣A∣)=(B1,…,B∣A∣);
- 存在整数 1≤i≤min{∣A∣,∣B∣},同时满足:
- (A1,…,Ai−1)=(B1,…,Bi−1);
- Ai<Bi。
输入格式
输入通过标准输入给出,格式如下:
p q N L R
输出格式
输出 R−L+1 行。第 i 行输出所有不超过 N 的正整数,按 qp 进制展开的字典序从小到大排列时,第 L+i−1 个正整数。
输出正整数时请使用十进制表示。
输入输出样例
输入#1
3 1 9 1 9
输出#1
1 3 9 4 5 2 6 7 8
输入#2
3 2 9 1 9
输出#2
1 2 3 4 6 9 7 8 5
输入#3
3 2 9 3 8
输出#3
3 4 6 9 7 8
输入#4
10 9 1000000000000000000 123456789123456789 123456789123456799
输出#4
806324968563249278 806324968563249279 725692471706924344 725692471706924345 725692471706924346 725692471706924347 725692471706924348 725692471706924349 653123224536231907 653123224536231908 653123224536231909
说明/提示
约束条件
- 1≤p,q≤109
- gcd(p,q)=1
- 1.01≤qp
- 1≤N≤1018
- 1≤L≤R≤N
- R−L+1≤3×105
样例解释 1
9 以下正整数的 3 进制展开如下:
1: (1), 2: (2), 3: (1, 0), 4: (1, 1), 5: (1, 2), 6: (2, 0), 7: (2, 1), 8: (2, 2), 9: (1, 0, 0)。
样例解释 2
9 以下正整数的 23 进制展开如下:
1: (1), 2: (2), 3: (2, 0), 4: (2, 1), 5: (2, 2), 6: (2, 1, 0), 7: (2, 1, 1), 8: (2, 1, 2), 9: (2, 1, 0, 0)。
例如 6 的 23 进制展开为 (2,1,0),因为 2⋅(23)2+1⋅23+0⋅1=6。
样例解释 3
输入样例 2 的输出中,第 3 到第 8 个即为答案。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?