1 条题解

  • 0
    @ 2025-8-24 22:39:20

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar chen_zhe
    Aya 敲可爱的~

    搬运于2025-08-24 22:39:20,当前版本为作者最后更新于2022-08-07 17:16:57,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    幻想乡麻将游戏

    解法

    因为 PP 是一个长度为 55 的排列,因此我们可以将这 5!5! 种情况全部枚举出来后,再进行对 aa 的枚举,逐一加以判断即可。枚举全排列可以使用 next_permutation 函数。对于一组数据至多要枚举 5!×10=12005! \times 10=1200 次,而 T105T \leq 10^5,自然可以承受。

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    using namespace std;
    int T,a[6];
    int main()
    {
        cin >> T;
        while (T--)
        {
            bool flag=false;
            for (int i=1;i<=4;i++)
                cin >> a[i];
            int P[]={1,2,3,4,5};
            do
            {
                for (int i=0;i<=9;i++)
                {
                    a[5]=i;
                    if (a[P[0]]-1==a[P[1]] && a[P[1]]==a[P[2]]+1 && a[P[3]]==a[P[4]])
                        flag=true;
                }
            }while (next_permutation(P,P+5));
            puts(flag?"1":"0");
        }
        return 0;
    }
    

    当然也可以分类讨论,从手速来说好像全排列快一点。

    • 1

    信息

    ID
    7674
    时间
    2000ms
    内存
    512MiB
    难度
    3
    标签
    递交数
    0
    已通过
    0
    上传者