水题
核心思想是:
a[i][j]=a[j][N-i];
其他自己看吧
这里偷懒直接开了c1,c2,c3来存
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
using namespace std;
int a[35][35],b[35][35];
int c1[35][35],c2[35][35],c3[35][35];
int ans1,ans2,ans3,ans4;
int i,j,k,N;
int main()
{
while(scanf("%d",&N)&&N!=0)
{
ans1=0,ans2=0,ans3=0,ans4=0;
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++)
{
c1[i][j]=a[j][N-i-1];
}
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
c2[i][j]=c1[j][N-i-1];
}
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
c3[i][j]=c2[j][N-i-1];
}
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
if(c1[i][j]==b[i][j])
ans1++;
if(c2[i][j]==b[i][j])
ans2++;
if(c3[i][j]==b[i][j])
ans3++;
if(a[i][j]==b[i][j])
ans4++;
}
}
int sum=0;
if(ans1>sum)sum=ans1;
if(ans2>sum)sum=ans2;
if(ans3>sum)sum=ans3;
if(ans4>sum)sum=ans4;
cout<<sum<<endl;
}
return 0;
}
附上一组数据:
3
1 1 1
2 2 2
3 3 3
3 2 1
3 2 1
3 2 1