首页 > 试题广场 >

次幂

[编程题]次幂
  • 热度指数:777 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
~~~~~~对于给出的整数 a,b,c,d ,按照任意顺序填入下式的四个位置,求解是否至少有一个等式成立?
\Box ^ {\Box } = \Box ^ {\Box }
~~~~~~更具体的说,判断下方 12 个等式中是否至少有一个成立。
~~~~~~
\begin{matrix}<br />a^b=c^d & a^b=d^c & a^c=b^d & a^c=d^b \\ <br />a^d=b^c & a^d=c^b & b^a=c^d & b^a=d^c \\ <br />b^c=d^a & b^d=c^a & c^a=d^b & c^b=d^a \\ <br />\end{matrix}

输入描述:
~~~~~~每个测试文件均包含多组测试数据。第一行输入一个整数 T\left(1\le T\le 2 \times 10^5\right) 代表数据组数,每组测试数据描述如下:

~~~~~~在一行上输入四个整数 a,b,c,d \left(1\le a,b,c,d\le 10^5 \right) 代表一次询问。


输出描述:
~~~~~~对于每一组测试数据,如果等式成立,在一行上输出 \rm YES ;否则,直接输出 \rm NO
示例1

输入

3
1 4 2 2
2 3 8 1
4 7 6 2

输出

YES
YES
NO

说明

~~~~~~对于第一组测试数据,4 ^ 1 = 2 ^ 2 成立。
~~~~~~对于第二组测试数据,2 ^ 3 = 8 ^ 1 成立。

备注:
~~~~~~在几乎全部的情况下,\sf PyPy 的运行速度优于 \sf Python ,我们建议您选择对应版本的 \sf PyPy 进行提交、而不是 \sf Python
这题是不是有问题,能过的代码输入8 4 4 2输出NO
发表于 2025-09-10 23:04:02 回复(0)
#include <bits/stdc++.h>

using namespace std;

signed main() {
    int t;
    cin >> t;
    
    while (t -- ) {
        vector<int> a(4);
        for (auto &e : a) cin >> e;

        sort(a.begin(), a.end());

        bool t = false;

        do {
            t |= (pow(a[0], a[1]) == pow(a[2], a[3]));
        } while (next_permutation(a.begin(), a.end()));

        puts(t ? "YES" : "NO");
    }

    return 0;
}

发表于 2025-07-22 13:01:51 回复(2)