AT_abc422_d.[ABC422D] Least Unbalanced

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一个正整数 NN。定义长度为 2N2^N 的非负整数序列 A=(A1,A2,…,A2N)A=(A_1, A_2, \dots, A_{2^N}) 的不均衡度为通过以下操作获得的非负整数:

  • 初始时,设 X=0X=0。
  • 重复以下操作共 NN 次:
    • 用 X←max⁡(X,max⁡(A)−min⁡(A))X \gets \max(X, \max(A) - \min(A)) 更新 XX,其中 max⁡(A)\max(A) 和 min⁡(A)\min(A) 分别表示序列 AA 的最大值和最小值。
    • 将 AA 转化为长度减半的新序列,方法是依次两两配对并求和,即 A←(A1+A2,A3+A4,…,A∣A∣−1+A∣A∣)A \gets (A_1 + A_2, A_3 + A_4, \dots, A_{|A|-1} + A_{|A|})。
  • 操作结束后,XX 的最终值即为不均衡度。

例如,当 N=2N=2,A=(6,8,3,5)A=(6, 8, 3, 5) 时,不均衡度为 66,具体步骤如下:

  • 初始时 X=0X=0。
  • 第一次操作:
    • X←max⁡(0,8−3)=5X \gets \max(0, 8-3)=5。
    • A←(6+8,3+5)=(14,8)A \gets (6+8, 3+5)=(14, 8)。
  • 第二次操作:
    • X←max⁡(5,14−8)=6X \gets \max(5, 14-8)=6。
    • A←(14+8)=(22)A \gets (14+8)=(22)。
  • 最终 X=6X=6。

现在,给定一个非负整数 KK。在所有长度为 2N2^N 且元素和为 KK 的非负整数序列中,构造一个不均衡度最小的序列。

输入格式

输入通过标准输入给出,格式如下:

NN KK

输出格式

设 B=(B1,B2,…,B2N)B=(B_1, B_2, \dots, B_{2^N}) 为某个不均衡度最小的满足条件的序列。不均衡度为 UU。输出格式如下:

UU B1B_1 B2B_2 …\dots B2NB_{2^N}

如果有多组答案,输出任意一组均可。

输入输出样例

  • 输入#1

    1 11

    输出#1

    1
    5 6
  • 输入#2

    3 56

    输出#2

    0
    7 7 7 7 7 7 7 7

说明/提示

样例解释 1

(5,6)(5, 6) 是一组不均衡度为 11 的序列,是满足条件的不均衡度最小序列。

数据范围

  • 1≤N≤201 \leq N \leq 20
  • 0≤K≤1090 \leq K \leq 10^9
  • NN 和 KK 均为整数。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页