zoukankan      html  css  js  c++  java
  • 2012蓝桥杯决赛试题最后一题答案

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    int map[7][7];
    int num[7][7];
    char H[6];
    int ff=0;
    int n=1;
    void dfs(int x,int y)
    {
        int i,j;
        if(x==6)
        {
            ff=1;
            cout<<n++<<endl;
            for(i=0;i<=5;i++)
            {    for(j=0;j<=5;j++)
                {
                    printf("%c",H[map[i][j]]);
                }
            printf("
    ");
            }
        return ;
        }
        int div=num[x][y];
        int f=0;
        if(map[x][y]==-1)
        for(i=0;i<=5;i++)
        {
            f=0;
            for(j=0;j<6;j++)
                if(map[j][y]==i)
                {f=1;break;}
            for(j=0;j<6;j++)
                if(map[x][j]==i)
                {f=1;break;}
            for(j=0;j<=5;j++)
                for(int k=0;k<=5;k++)
                    if(num[j][k]==div&&map[j][k]==i)
                    {f=1;break;}
            if(f)
                continue;
            map[x][y]=i;
            if(y<=4)
                dfs(x,y+1);
            else
                dfs(x+1,0);
            map[x][y]=-1;
        }
        else
        {
            if(y<=4)
                dfs(x,y+1);
            else
                dfs(x+1,0);
        }
        return ;
    }
    int pre[10010],now[10010];
    void init()
    {
        memset(map,-1,sizeof(map));
        memset(num,-1,sizeof(num));
        H[0]='A';
        H[1]='B';
        H[2]='C';
        H[3]='D';
        H[4]='E';
        H[5]='F';
        ff=0;
    }
    int main()
    {
        int i,j;
        int T;
        char str[7];
        init();
        for(i=0;i<=5;i++)
        {
            scanf("%s",&str);
            for(j=0;j<=5;j++)
                num[i][j]=str[j]-'0';
        }
        //cout<<"ok"<<endl;
        scanf("%d",&T);
        while(T--)
        {
            scanf("%s",&str);
            map[str[0]-'0'][str[1]-'0']=str[2]-'A';
        }
        //cout<<"ok"<<endl;
        dfs(0,0);
        if(!ff)
            printf("无解
    ");
        return 0;
    }
  • 相关阅读:
    linux基础练习题(3)
    linux基础练习题(2)
    linux基础练习题(1)
    编辑器 vim
    Linux 命令总结
    Sublime Text 3 快捷键总结(拿走)
    Linux 主要目录速查表
    javaScript中的querySelector()与querySelectorAll()的区别
    javaScript定时器
    js基本类型和字符串的具体应用
  • 原文地址:https://www.cnblogs.com/wangfang20/p/3165582.html
Copyright © 2011-2022 走看看