P1205 方块转换

https://www.luogu.org/problem/show?pid=1205

大大大大大大枚举!
通过纸上画图来找各个情况中点与点的对应坐标关系
还需要注意的问题:题目要求序号尽量靠前。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<vector>
#include<algorithm>
#include<map> 
using namespace std;
int n;
char a[20][20];
char b[20][20];
int f[10];
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
      for(int j=1;j<=n;j++)
        cin>>a[i][j];
    for(int i=1;i<=n;i++)
      for(int j=1;j<=n;j++)
        cin>>b[i][j];
    int p=0;
    for(int i=1;i<=n;i++)
     for(int j=1;j<=n;j++){
        if(a[i][j]!=b[j][n-i+1]) f[1]=1;
        if(a[i][j]!=b[n-i+1][n-j+1]) f[2]=1;
        if(a[i][j]!=b[n-j+1][i]) f[3]=1;
        if(a[i][j]!=b[i][n-j+1]) f[4]=1;
        if((a[i][j]!=b[n-j+1][n-i+1])&&(a[i][j]!=b[n-i+1][n-(n-j+1)+1])&&(a[i][j]!=b[i][n-(n-j+1)+1])) f[5]=1;
        if(a[i][j]!=b[i][j]) f[6]=1;
    }
    for(int i=6;i>=1;i--)
    {
        if(!f[i])
         p=i;
    }
    if(!p) p=7;
    printf("%d",p);
    return 0; 
}
原文地址:https://www.cnblogs.com/dfsac/p/7587918.html