水题,翻转的时候画几个图找一找下表变化的规律就可以了。渣渣还卡在1002的MLE中。>_<
#include<stdio.h>
#include <cstdio>
#include<string>
#include<math.h>
#include<stdlib.h>
#include<set>
#include<map>
#include<vector>
#include<queue>
#include<string.h>
#include<algorithm>
#include<iostream>
using namespace std;
int a1[33][33];
int a2[33][33];
int N=0;
//int ans[4][33];
int mx=0;
int cnt[4];
void get()
{
for(int i=0;i<N;i++)
{
for(int j=0;j<N;j++)
{
if(a1[i][j]==a2[i][j])
{
// ans[0][cnt[0]++]=a1[i][j];
cnt[0]++;
}
if(a1[i][j]==a2[N-1-j][i])
{
// ans[1][cnt[1]++]=a1[i][j];
cnt[1]++;
}
if(a1[i][j]==a2[N-1-i][N-1-j])
{
//ans[2][cnt[2++]]=a1[i][j];
cnt[2]++;
}
if(a1[i][j]==a2[j][N-1-i])
{
// ans[3][cnt[3]++]=a1[i][j];
cnt[3]++;
}
}
}
int id=0;
for(int i=0;i<4;i++)
{
if(cnt[i]>mx)
{
mx=cnt[i];
id=i;
}
}
printf("%d\n",cnt[id]);
}
int main()
{
// freopen("input.txt","r",stdin);
while(scanf("%d",&N))
{
if(N==0) break;
mx=0;
for(int i=0;i<4;i++) cnt[i]=0;
for(int i=0;i<N;i++)
for(int j=0;j<N;j++)
{
scanf("%d",&a1[i][j]);
}
for(int i=0;i<N;i++)
for(int j=0;j<N;j++)
{
scanf("%d",&a2[i][j]);
}
get();
}
return 0;
}
本文提供了解决特定类型编程问题的方法,通过观察和理解数据翻转时的变化规律,来求解复杂的数据操作问题。适用于初学者理解和解决类似的编程挑战。
1181

被折叠的 条评论
为什么被折叠?



