题目背景
$$\begin{array}{cr}
\text{时针停在相互拥抱的前一秒}\\
\text{凝视每件事的空白}\\
\text{等待缝隙}\overset{\text{Memory Limit Exceeded}}{\text{被缺失章节填满}}\\
\text{等}\overset{\text{return }{\color{#EE0000}0}\text{;}}{{\color{#EE0000}\text{某个人}}\text{回来}}\\
&\text{——《世界沉睡童话》}
\end{array}
$$
在不断变化着的世界中,找出彼此的所属。
压缩成一个数的记忆,泠珞又能否还原呢?
题目描述
给定正整数 n 和非负整数 k,请构造一个正整数序列 a1,a2,⋯,an,满足恰有 k 组正整数对 (i,j) (1≤i<j≤n),满足 max(ai,aj) 是 min(ai,aj) 的倍数。
输入保证有解。
为了获得满分,你需要保证 ai≤2n−1。
输入格式
第一行两个非负整数 n,k。输入保证有解。
输出格式
一行 n 个正整数,第 i 个表示你构造的 ai。
为了获得满分,你需要保证 ai≤2n−1。
输出任意一组可行解均可。
6 8
3 6 1 4 2 5
3 3
5 5 5
提示
【样例 #1 解释】
符合要求的数对有 (1,2),(1,3),(2,3),(2,5),(3,4),(3,5),(3,6),(4,5) 共 k=8 组。
【数据范围】
本题采用捆绑测试和子任务依赖。
本题中,RE 会显示为 UKE,这是正常现象。
具体地,部分测试点可能属于多个子任务。因此,子任务不会显式地显示出来。以下表格表示了每个测试点属于的子任务情况:
测试点编号 |
所属子任务 |
1,2,4,8 |
1,2,3,4,5 |
22 |
2,3,4,5 |
43 |
3,4,5 |
3,5,6,9∼11,15∼18 |
1,2,4,5 |
7,12∼14,19∼21 |
1,2,5 |
23∼25,33,39 |
2,4,5 |
26∼32,34∼38,40∼42 |
2,5 |
44∼54 |
4,5 |
55∼100 |
5 |
不保证不存在某些数据符合它不在的 Subtask 的条件。
对于 100% 的数据,1≤n≤2.5×105,0≤k≤2n(n−1),本题的数据保证有解。
对于每个子任务,如果你保证了 ai≤4n,你将获得 p1 的分数。如果你保证了 ai≤3n,你将获得 p2 的分数。如果你保证了 ai≤2n−1,你将获得 p3 的分数,即满分。
对于每个子任务,你只有保证了所有属于它的测试点都保证了以上的条件,你才能获得对应的分数。
输出任意一组符合要求的可行解都可以获得对应的分数。
因此,您无法直接知道每个子任务的 p1,p2 部分分数的获取情况。你可以通过在程序内进行 assert
(用法:assert(表达式)
,若表达式为 0
/ false
则会 RE)确认自己的通过情况。
子任务编号 |
p1 |
p2 |
p3 |
n≤ |
k≤ |
1 |
2 |
3 |
5 |
2n(n−1) |
2 |
5 |
11 |
17 |
104 |
3 |
1 |
2 |
2.5×105 |
0 |
4 |
7 |
13 |
29 |
n−1 |
5 |
11 |
23 |
47 |
2n(n−1) |