• USACO 1.2 Transformations


    /*
    ID: aznfy1
    PROG: transform
    LANG: C++
    */
    
    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    #include<iostream>
    #include<string.h>
    #define clr(a,b); memset(a,b,sizeof(a));
    
    using namespace std;
    
    char newgraph[20][20];
    char oldgraph[20][20];
    char buf[20][20];
    char want[20][20];
    int n;
    
    int compare()
    {
        for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
            if(strcmp(want[i],newgraph[i])!=0)
            return 0;
        return 1;
    }
    
    void change1()
    {
        for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
        {
            newgraph[j][n-i-1]=buf[i][j];
        }
    }
    
    void change2()
    {
        for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
        {
            newgraph[n-i-1][n-j-1]=buf[i][j];
        }
    }
    
    void change3()
    {
        for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
        {
            newgraph[n-j-1][i]=buf[i][j];
        }
    }
    
    void Reflection()
    {
        for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
        {
            newgraph[i][n-j-1]=buf[i][j];
        }
    }
    
    int main()
    {
        freopen("transform.in","r",stdin);
        freopen("transform.out","w",stdout);
        while(scanf("%d",&n)!=EOF)
        {
            clr(oldgraph,0);
            clr(newgraph,0);
            for(int i=0;i<n;i++)
            cin>>oldgraph[i];
            for(int i=0;i<n;i++)
            cin>>want[i];
    
            for(int i=0;i<n;i++)
            strcpy(buf[i],oldgraph[i]);
            change1();
            if(compare())
            {
                cout<<1<<endl;
                continue;
            }
            change2();
            if(compare())
            {
                cout<<2<<endl;
                continue;
            }
            change3();
            if(compare())
            {
                cout<<3<<endl;
                continue;
            }
            Reflection();
            if(compare())
            {
                cout<<4<<endl;
                continue;
            }
            Reflection();
            for(int i=0;i<n;i++)
            strcpy(buf[i],newgraph[i]);
            change1();
            if(compare())
            {
                cout<<5<<endl;
                continue;
            }
            for(int i=0;i<n;i++)
            strcpy(buf[i],oldgraph[i]);
            Reflection();
            for(int i=0;i<n;i++)
            strcpy(buf[i],newgraph[i]);
            change2();
            if(compare())
            {
                cout<<5<<endl;
                continue;
            }
            for(int i=0;i<n;i++)
            strcpy(buf[i],oldgraph[i]);
            Reflection();
            for(int i=0;i<n;i++)
            strcpy(buf[i],newgraph[i]);
            change3();
            if(compare())
            {
                cout<<5<<endl;
                continue;
            }
            for(int i=0;i<n;i++)
            strcpy(buf[i],oldgraph[i]);
            for(int i=0;i<n;i++)
            strcpy(newgraph[i],oldgraph[i]);
            if(compare())
            {
                cout<<6<<endl;
                continue;
            }
            cout<<7<<endl;
        }
        return 0;
    }
    View Code
  • 相关阅读:
    资料收集
    layui 设计资源——2.0 版本的 Axure 组件包,产品交互设计利器
    照片自动按时间分类助手
    回顾2017,规划2018,展望2019
    coder/programmer engineer Chirf Technology Offcer
    新手开公司创业,这些坑千万别掉进去!
    ASP.NET MVC中的Global.asax文件
    SQLServer(MSSQL)、MySQL、SQLite、Access相互迁移转换工具 DB2DB v1.0
    快速开发之代码生成器(asp.net mvc4 + easyui + knockoutjs)
    PowerDesigner逆向工程导入MYSQL数据库总结
  • 原文地址:https://www.cnblogs.com/whatthefy/p/3085229.html
Copyright © 2020-2023  润新知