zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    React 之使用 fetch
    react-native 环境搭建
    create-react-app 配置 less
    React新的前端思维方式
    字体图标 —— IconMoon
    你不知道的javascript 之 >>
    前端的自我修养
    jquery 学习
    html的meta总结
    git基本操作 nginx基本操作
  • 原文地址:https://www.cnblogs.com/whatthefy/p/3085229.html
Copyright © 2011-2022 走看看