• USACO 1.2 Transformations (模拟)


    模拟题目,依照题目给定的要求变换图形就可以,变换的优先级依次减小。

    这个题目我写的非常乱。只是最还还是勉强能够执行

    /*
      ID:twd30651
      PROG:transform
      LANG:C++
    */
    #include<iostream>
    #include<fstream>
    #include<stdlib.h>
    #include<string.h>
    using namespace std;
    #define MAX 10
    char a[MAX][MAX];
    char b[MAX][MAX];
    char c[MAX][MAX];
    char t[MAX][MAX];
    int N;
    int flag=0;
    int check()
    {
        for(int i=0;i<N;++i)
            for(int j=0;j<N;++j)
            {
                if(b[i][j]!=t[i][j])return 0;
            }
        return 1;
    }
    void do1(char a[][MAX],char b[][MAX],int f)//f是个标志。标志是第五个操作调用的。还是直接调用的
    {
        for(int i=0;i<N;++i)
            for(int j=0;j<N;++j)
            {
                b[j][N-i-1]=a[i][j];
            }
        if(!f&&check()){printf("1
    ");
            flag=1;
        }
    }
    void do2(char a[][MAX],char b[][MAX],int f)//同理
    {
        for(int i=0;i<N;++i)
            for(int j=0;j<N;++j)
            {
                b[N-i-1][N-j-1]=a[i][j];
            }
        if(!f&&check()){
            printf("2
    ");
            flag=1;
        }
    }
    void do3(char a[][MAX],char b[][MAX],int f)//同理
    {
        for(int i=0;i<N;++i)
            for(int j=0;j<N;++j)
            {
                b[N-j-1][i]=a[i][j];
            }
        if(!f&&check()){
            printf("3
    ");
            flag=1;
        }
    }
    void do4(char a[][MAX],char b[][MAX])
    {
        for(int i=0;i<N;++i)
            for(int j=0;j<N;++j)
            {
                b[i][N-j-1]=a[i][j];
            }
        if(check()){
            printf("4
    ");
            flag=1;
        }
    }
    void do5(char a[][MAX],char b[][MAX])
    {
        do4(a,c);
        for(int i=0;i<3;++i)
        {
            if(i==0)
            {
                do1(c,b,1);
                if(check()){printf("5
    ");
                    flag=1;
                }
            }
            else if(i==1)
            {
                do2(c,b,1);
                if(check()){printf("5
    ");
                    flag=1;}
            }
            else
            {
                do3(c,b,1);
                if(check()){printf("5
    ");
                    flag=1;}
            }
        }
    }
    void do6(char a[][MAX],char b[][MAX])
    {
        for(int i=0;i<N;++i)
            for(int j=0;j<N;++j)
            {
                b[i][j]=a[i][j];
            }
        if(check())
        {
            printf("6
    ");
            flag=1;
        }
    }
    
    
    int main(int argc,char *argv[])
    {
        freopen("transform.in","r",stdin);
        freopen("transform.out","w",stdout);
        memset(a,0,sizeof(a));
        memset(b,0,sizeof(b));
        memset(c,0,sizeof(c));
        scanf("%d",&N);
        for(int i=0;i<N;++i)
            scanf("%s",a[i]);
        for(int i=0;i<N;++i)
            scanf("%s",t[i]);
        for(int i=1;i<=7;++i)
        {
            switch(i)
            {
            case 1:
                if(flag==0)
                    do1(a,b,0);
                break;
            case 2:
                if(flag==0)
                    do2(a,b,0);
                break;
            case 3:
                if(flag==0)
                    do3(a,b,0);
                break;
            case 4:
                if(flag==0)
                    do4(a,b);
                break;
            case 5:
                if(flag==0)
                    do5(a,b);
                break;
            case 6:
                if(flag==0)
                    do6(a,b);
                break;
            case 7:
                if(flag==0)
                printf("7
    ");
                break;
            }
        }
        return 0;
    }
    


  • 相关阅读:
    C
    A
    hdu 三部曲1 Popular Cows tarjan算法&&缩点&&拓扑排序
    hdu 三部曲 Going Home 最小费用最大流 EK算法
    hdu 三部曲 1Minimum Cost 最小费用最大流EK算法
    hdu 三部曲1 Is the Information Reliable? 差分约束 bellman_ford算法
    hdu 三部曲1 Intervals 差分约束问题 spfa算法
    hdu 三部曲 Crashing Robots
    hdu 三部曲2 Rebuilding Roads
    Codeforces 1277C As Simple as One and Two
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/6929396.html
Copyright © 2020-2023  润新知