zoukankan      html  css  js  c++  java
  • USACO Section 1.2PROB Transformations

    挺有趣的一道题,呵呵,不算难

    /*
    ID: jusonal1
    PROG: transform
    LANG: C++
    */
    #include <iostream>
    #include <fstream>
    #include <string>
    #include <cstdio>
    #include <algorithm>
    #include <map>
    #include <cstring>
    using namespace std;
    const int maxn = 15;
    int n;
    struct MP{
        char mp[maxn][maxn];
    };
    MP orign_map;
    MP then_map;
    MP new_map;
    bool pattern_1(const MP a){
        for(int i = 1;i <= n;++i)
            for(int j = 1;j <= n;++j)
                if(then_map.mp[i][j] != a.mp[n-j+1][i])
                    return false;
        return true;
    }
    bool pattern_2(const MP a){
        for(int i = 1;i <= n;++i)
            for(int j = 1;j <= n;++j)
                if(then_map.mp[i][j] != a.mp[n-i+1][n-j+1])
                    return false;
        return true;
    }
    bool pattern_3(MP a){
        for(int i = 1;i <= n;++i)
            for(int j = 1;j <= n;++j)
                if(then_map.mp[i][j] != a.mp[j][n-i+1])
                    return false;
        return true;
    }
    bool pattern_4(MP a){
        for(int i = 1;i <= n;++i)
            for(int j = 1;j <= n;++j)
                if(then_map.mp[i][j] != a.mp[i][n-j+1])
                    return false;
        return true;
    }
    bool pattern_5(MP a){
        if(pattern_1(a)) return true;
        if(pattern_2(a)) return true;
        if(pattern_3(a)) return true;
        return false;
    }
    bool pattern_6(MP a){
        for(int i = 1;i <= n;++i)
            for(int j = 1;j <= n;++j)
                if(a.mp[i][j] != then_map.mp[i][j]) return false;
        return true;
    }
    void print(){
        for(int i = 1;i <= n;++i){
            for(int j = 1;j <= n;++j)
                printf("%c",new_map.mp[i][j]);
                puts("");
        }
        puts("");
    }
    void getmap(){
        for(int i = 1;i <= n;++i)
            for(int j = 1;j <= n;++j)
            scanf(" %c",&orign_map.mp[i][j]);
        for(int i = 1;i <= n;++i)
            for(int j = 1;j <= n;++j)
            scanf(" %c",&then_map.mp[i][j]);
        return ;
    }
    int main () {
        freopen("transform.in","r",stdin);
        freopen("transform.out","w",stdout);
        scanf("%d",&n);
        getmap();
        MP new_map;
        for(int i = 1;i <= n;++i)
            for(int j = 1;j <= n;++j)
                new_map.mp[i][j] = orign_map.mp[i][n-j+1];
        if(pattern_1(orign_map)) puts("1");
        else if(pattern_2(orign_map)) puts("2");
        else if(pattern_3(orign_map)) puts("3");
        else if(pattern_4(orign_map)) puts("4");
        else if(pattern_5(new_map)) puts("5");
        else if(pattern_6(orign_map))puts("6");
        else puts("7");
        return 0;
    }
  • 相关阅读:
    komodo install on ubuntu
    关于scrapbook的导入导出
    hg常用命令小记

    在cygwin使用python
    命运多cuai
    常用shell命令
    360做电视广告了
    ubuntu im安装
    ubuntu下的路径
  • 原文地址:https://www.cnblogs.com/jusonalien/p/4061000.html
Copyright © 2011-2022 走看看