0
点赞
收藏
分享

微信扫一扫

hdu4772 水模拟

斗米 2022-07-27 阅读 60

题意:
      给你两个矩阵,问你两个矩阵的最大相同元素个数(位置也要求相同),矩阵可以90旋转多次。

思路:
      水题,直接模拟就行了,方法很多,可以直接写坐标关系,或者一层一层处理,就是一层一层往里拿出来,比较就行了,两个都写了。


直接交换

#include<stdio.h>



int A[32][32] ,B[32][32] ,C[32][32];



void swap(int n)

{

for(int i = 1 ;i <= n ;i ++)

for(int j = 1 ;j <= n ;j ++)

C[i][j] = A[j][n-i+1];

for(int i = 1 ;i <= n ;i ++)

for(int j = 1 ;j <= n ;j ++)

A[i][j] = C[i][j];

}



int main ()

{

int n ,i ,j ,ans;

while(~scanf("%d" ,&n) && n)

{

for(i = 1 ;i <= n ;i ++)

for(j = 1 ;j <= n ;j ++)

scanf("%d" ,&A[i][j]);

for(i = 1 ;i <= n ;i ++)

for(j = 1 ;j <= n ;j ++)

scanf("%d" ,&B[i][j]);

int ans = 0;

for(int c = 1 ;c <= 4 ;c ++)

{

int sum = 0;

for(i = 1 ;i <= n ;i ++)

for(j = 1 ;j <= n ;j ++)

if(A[i][j] == B[i][j]) sum ++;

if(ans < sum) ans = sum;

swap(n);

}

printf("%d\n" ,ans);

}

return 0;

}



一层一层比较



#include<stdio.h>



int get_len(int c ,int n ,int A[32][32] ,int C[])

{

int tmp = 0 ,i;

for(i = c ;i <= n - c + 1 ;i ++)

C[++tmp] = A[c][i];

for(i = c + 1 ;i <= n - c + 1 ;i ++)

C[++tmp] = A[i][n - c + 1];

for(i = n - c + 1 - 1 ;i >= c ;i --)

C[++tmp] = A[n - c + 1][i];

for(i = n - c + 1 - 1 ;i >= c + 1 ;i --)

C[++tmp] = A[i][c];

return tmp;

}





int main ()

{

int A[32][32] ,B[32][32] ,C[1000] ,D[1000];

int i ,j ,n;

int sum[5];

while(~scanf("%d" ,&n) && n)

{

for(i = 1 ;i <= n ;i ++)

for(j = 1 ;j <= n ;j ++)

scanf("%d" ,&A[i][j]);

for(i = 1 ;i <= n ;i ++)

for(j = 1 ;j <= n ;j ++)

scanf("%d" ,&B[i][j]);

sum[1] = sum[2] = sum[3] = sum[4] = 0;

for(int c = 1 ;c <= (n + 1) / 2 ;c ++)

{

int tmp1 = get_len(c ,n ,A ,C);

int tmp2 = get_len(c ,n ,B ,D);

for(i = 1 ;i <= 4 ;i ++)

{

for(j = 1 ;j <= tmp1 ;j ++)

{

int now = j + (n - c + 1 - c) * (i - 1);

if(now > tmp1) now -= tmp1;

if(C[now] == D[j]) sum[i] ++;

}

}

}

int ans = 0;

for(i = 1 ;i <= 4 ;i ++)

if(ans < sum[i]) ans = sum[i];

printf("%d\n" ,ans);

}

return 0;

}


          
          
          
          
    
          
            
         
   



举报

相关推荐

0 条评论