AT_abc254_h.[ABC254Ex] Multiply or Divide by 2

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

给定两个由 NN 个非负整数组成的多重集 A={a1,…,aN}A=\{a_1,\ldots,a_N\} 和 B={b1,…,bN}B=\{b_1,\ldots,b_N\}。
你可以以任意顺序、任意次数进行以下操作:

  • 从 AA 中选择一个非负整数 xx,将 AA 中的一个 xx 删除,并加入一个 2x2x。
  • 从 AA 中选择一个非负整数 xx,将 AA 中的一个 xx 删除,并加入一个 ⌊x2⌋\left\lfloor \frac{x}{2} \right\rfloor。(⌊x⌋\lfloor x \rfloor 表示不超过 xx 的最大整数)

你的目标是使 AA 和 BB 作为多重集完全相同。
请判断是否可以达成目标,如果可以,请求出所需操作次数的最小值。

输入格式

输入按以下格式从标准输入读入。

NN a1a_1 …\ldots aNa_N b1b_1 …\ldots bNb_N

输出格式

如果可以达成目标,输出所需操作次数的最小值;否则输出 −1-1。

输入输出样例

  • 输入#1

    3
    3 4 5
    2 4 6

    输出#1

    2
  • 输入#2

    1
    0
    1

    输出#2

    -1

说明/提示

限制条件

  • 1≤N≤1051 \leq N \leq 10^5
  • 0≤a1≤…≤aN≤1090 \leq a_1 \leq \ldots \leq a_N \leq 10^9
  • 0≤b1≤…≤bN≤1090 \leq b_1 \leq \ldots \leq b_N \leq 10^9
  • 输入均为整数

样例解释 1

可以通过如下两步操作达成目标:

  • 选择 x=3x=3,将 AA 中的 x (=3)x\ (=3) 删除,加入 2x (=6)2x\ (=6)。此时 A={4,5,6}A=\{4,5,6\}。
  • 选择 x=5x=5,将 AA 中的 x (=5)x\ (=5) 删除,加入 ⌊x2⌋ (=2)\left\lfloor \frac{x}{2} \right\rfloor\ (=2)。此时 A={2,4,6}A=\{2,4,6\}。

样例解释 2

无法将 {0}\{0\} 变为 {1}\{1\}。

由 ChatGPT 4.1 翻译

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

首页