1 条题解

  • 0
    @ 2025-5-29 17:37:30
    #include<iostream>
    #include<cstdio>
    #include<string.h>
    using namespace std;
    int tri[10][3];
    bool vis[10][4];
    int way;
    
    void dfs(int a, int b, int c, int d)
    {
        b++;
        if(b == 6)
        {
            int n1 = 0;
            if(tri[0][d] == tri[a][c])
            {
                vis[a][c] = 1;
                for(int i = 0; i < 6; i++)
                {
                    for(int j = 0; j < 3; j++)
                    {
                        if(!vis[i][j]){n1 +=  tri[i][j];break;}
                    }
                }
                if(way < n1)way = n1;
                vis[a][c] = 0;
            }
            return ;
        }
        vis[a][3] = 1;
        if(b != 6)
        {
            vis[a][c] = 1;
                for(int i = 0; i < 6; i++)
                {
                    if(!vis[i][3])
                    {
                        for(int k = 0; k < 3; k++)
                        {
                            if(tri[i][k] == tri[a][c])
                            {
                                vis[i][k] = 1;
                                int next = (k + 1) % 3;
                                dfs(i, b, next, d);
                                vis[i][k] = 0;
                            }
                        }
                    }
                }
                vis[a][c] = 0;
        }
        vis[a][3] = 0;
        return ;
    }
    
    int main()
    {
        int y = 1;
        char cc;
        while(y)
        {
            memset(vis, 0, sizeof vis);
            y = 0; way = 0;
            for(int i = 0; i < 6; i++)
                scanf("%d%d%d", &tri[i][0], &tri[i][1], &tri[i][2]);
            vis[0][2] = 1;
            dfs(0, 0, 0, 2);
            vis[0][2] = 0;
            vis[0][0] = 1;
            dfs(0, 0, 1, 0);
            vis[0][0] = 0;
            vis[0][1] = 1;
            dfs(0, 0, 2, 1);
            vis[0][1] = 0;
            if(way != 0)printf("%d\n", way);
            else printf("none\n");
            scanf("\n");
            scanf("%c", &cc);
            if(cc == '*')y = 1;
                else y = 0;
        }
        return 0;
    }
    • 1

    信息

    ID
    575
    时间
    1000ms
    内存
    10MiB
    难度
    9
    标签
    递交数
    1
    已通过
    1
    上传者