给定一个长度为 n 的序列 a ,请你构造一个序列 b ,序列 b 满足以下条件: 1.序列 b 的长度为 n 2.对于任意 i ∈ [1,n] ,满足 (a_i + b_i) mod i = 0 3.对于任意 i ∈ [1,n] ,满足 1 ≤ b_i ≤ 10^9 4.对于任意 1 ≤ i < j ≤ n ,满足 b_i ≠ b_j
第一行输入一个整数 n(1≤ n ≤ 10^5) 第二行输入 n 个整数,第 i 个为 a_i(1≤ a_i ≤ 10^6)
输出 n 个整数,表示答案。 若有多个不同的答案,输出任意一个即可。
5 3 4 7 8 10
1 6 2 4 5
考点:贪心 · 数论 · 构造
数据规模 n ≤ 1e5 | 限制 1 秒 / 256MB | 标准输入输出
推荐方向:贪心
每一步都取当前最优,靠问题性质保证局部最优能拼成全局最优。
思路框架(贪心 通法 · 非本题专属)
实现要点:贪心题关键在于排序规则:按什么关键字排序决定了策略是否正确。
复杂度:时间 O(n log n)(含排序) | 空间 O(1) ~ O(n)
该范式的通法易错点
对照本题
样例 1
5 / 3 4 7 8 101 6 2 4 5解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:2023年秋招-京东-技术通用岗位-第三批笔试。