CF2119A.Add or XOR

入门

通过率:0%

AC君温馨提醒

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

题目描述

r-906 & IA AI - Psychologic Disco

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

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

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

输入格式

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

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

输出格式

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

输入输出样例

  • 输入#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

    输出#1

    3
    6
    1
    3
    -1
    -1
    990000000

说明/提示

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

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

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

由 ChatGPT 4.1 翻译

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

首页