杭电4772

来源:互联网 发布:windows gcc安装包 编辑:程序博客网 时间:2024/06/08 19:14

    计算出旋转中心,把几种旋转的情况都罗列出来,然后进行比较,得到最大的相同的就可以了


#include<iostream>using namespace std;int a[40][40];int b[40][40];int main(){    int n;    while(cin>>n&&n!=0)    {        int i,j;        double x0,y0;        int sum1=0,sum2=0,sum3=0,sum4=0;        x0=1.0*(n-1)/2;        for(i=0;i<n;i++)        {            for(j=0;j<n;j++)                cin>>a[i][j];        }        for(i=0;i<n;i++)        {            for(j=0;j<n;j++)                cin>>b[i][j];        }        for(i=0;i<n;i++)        {            for(j=0;j<n;j++)            {                if(a[i][j]==b[i][j]) sum1++;        //        cout<<i<<' '<<j;                if(a[i][j]==b[j][(int)(2.0*x0-i)]) sum2++;        //        cout<<j<<' '<<(int)(2.0*x0-i)<<endl;                if(a[i][j]==b[(int)(2.0*x0-j)][i]) sum3++;                if(b[(int)(2.0*x0-i)][(int)(2.0*x0-j)]==a[i][j]) sum4++;            }        }        if(sum1<sum2) sum1=sum2;        if(sum1<sum3) sum1=sum3;        if(sum1<sum4) sum1=sum4;        cout<<sum1<<endl;    }}


0 0
原创粉丝点击