CF2119A.Add or XOR

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Add or XOR

题目描述

r-906 & IA AI - Psychologic Disco

给定两个非负整数 a,ba, b。你可以对 aa 进行任意次数、任意顺序的两种操作:

  • aa+1a \gets a + 1。该操作的花费为 xx
  • aa1a \gets a \oplus 1,其中 \oplus 表示按位异或操作。该操作的花费为 yy

现在要求你将 aa 变为 bb。如果可以做到,输出最小花费;否则,输出 1-1

输入格式

每组测试包含多个测试用例。第一行包含一个整数 tt1t1041 \le t \le 10^4),表示测试用例的数量。

每个测试用例的一行包含四个整数 a,b,x,ya, b, x, y1a,b100,1x,y1071 \le a, b \le 100, 1 \le x, y \le 10^7)——给定的两个整数以及两种操作各自的花费。

输出格式

对于每个测试用例,输出一个整数——将 aa 变为 bb 的最小花费。如果无法做到,输出 1-1

说明/提示

在第一个测试用例中,最优策略是执行三次 aa+1a \gets a + 1 操作。总花费为 1+1+1=31+1+1=3

在第二个测试用例中,最优策略是依次执行 aa+1a \gets a + 1aa1a \gets a \oplus 1aa+1a \gets a + 1aa1a \gets a \oplus 1。总花费为 2+1+2+1=62+1+2+1=6

在第五个测试用例中,可以证明无法将 aa 变为 bb

由 ChatGPT 4.1 翻译

样例

7
1 4 1 2
1 5 2 1
3 2 2 1
1 3 2 1
2 1 1 2
3 1 1 2
1 100 10000000 10000000
3
6
1
3
-1
-1
990000000

在线编程 IDE

建议全屏模式获得最佳体验