题意:

      给你两个矩阵,问你两个矩阵的最大相同元素个数(位置也要求相同),矩阵可以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;

}

          

          

         

          

          

          

          

    

          

            

         

   

hdu4772 水模拟的更多相关文章

  1. CodeForces.158A Next Round (水模拟)

    CodeForces.158A Next Round (水模拟) 题意分析 校赛水题的英文版,坑点就是要求为正数. 代码总览 #include <iostream> #include &l ...

  2. CodeForces.71A Way Too Long Words (水模拟)

    CodeForces71A. Way Too Long Words (水模拟) 题意分析 题怎么说你怎么做 没有坑点 代码总览 #include <iostream> #include & ...

  3. Intel Code Challenge Elimination Round (Div.1 + Div.2, combined) A B C D 水 模拟 并查集 优先队列

    A. Broken Clock time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  4. Codeforces Round #301 (Div. 2)A B C D 水 模拟 bfs 概率dp

    A. Combination Lock time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  5. Codeforces Round #397 by Kaspersky Lab and Barcelona Bootcamp (Div. 1 + Div. 2 combined) A B C D 水 模拟 构造

    A. Neverending competitions time limit per test 2 seconds memory limit per test 512 megabytes input ...

  6. BZOJ 1088 水模拟

    BZOJ水一道~ 枚举前两个位置是否放雷,模拟向下推.能够则ans++ #include "stdio.h" #include "string.h" int a ...

  7. Codeforces Round #375 (Div. 2) A B C 水 模拟 贪心

    A. The New Year: Meeting Friends time limit per test 1 second memory limit per test 256 megabytes in ...

  8. Codeforces Round #374 (Div. 2) A B C D 水 模拟 dp+dfs 优先队列

    A. One-dimensional Japanese Crossword time limit per test 1 second memory limit per test 256 megabyt ...

  9. Codeforces Round #277 (Div. 2) A B C 水 模拟 贪心

    A. Calculating Function time limit per test 1 second memory limit per test 256 megabytes input stand ...

随机推荐

  1. 大话Spark(5)-三图详述Spark Standalone/Client/Cluster运行模式

    之前在 大话Spark(2)里讲过Spark Yarn-Client的运行模式,有同学反馈与Cluster模式没有对比, 这里我重新整理了三张图分别看下Standalone,Yarn-Client 和 ...

  2. 【转载】关于grad_tensors的解惑

    转载:https://www.cnblogs.com/marsggbo/p/11549631.html 平常都是无脑使用backward,每次看到别人的代码里使用诸如autograd.grad这种方法 ...

  3. Vue.js 实现的 3D Tab菜单

    今天给大家带来一款基于VueJS的3D Tab菜单,它跟我们之前分享的许多CSS3 Tab菜单不同的是,它可以随着鼠标移动呈现出3D立体的视觉效果,每个tab页面还可以通过CSS自定义封面照片.它的核 ...

  4. div中如何让文本元素、img元素水平居中且垂直居中

    一.文本元素在div中的水平居中且垂直居中方法 html代码 <div id="box"> <p>文本元素</p> </div> c ...

  5. go-优雅地关机或重启

    目录 优雅地关机或重启 优雅地关机 什么是优雅关机? 如何实现优雅关机? 优雅地重启 总结 优雅地关机或重启 我们编写的Web项目部署之后,经常会因为需要进行配置变更或功能迭代而重启服务,单纯的kil ...

  6. MyBatis(四):自定义持久层框架优化

    本文所有代码已上传至码云:https://gitee.com/rangers-sun/mybatis 修改IUserDao.UserMapper.xml package com.rangers; im ...

  7. WPF 应用 - WPF 播放 GIF 的两种方式

    1. 使用 Winform 的 PictureBox 1.1 引用 dll WindowsFormsIntegration.dll System.Windows.Forms.dll System.Dr ...

  8. Python装饰器(3)

    这篇文章中记录说明下多个装饰器一同装饰同一个函数时的执行顺序问题. [装饰器链] 按照惯例,先看代码示例: import time def debug1(str): #传参接受类的方法 def fun ...

  9. 5行代码!完成bat病毒制作!!!

    这个病毒的功能是删除当前目录下.cpp类型的代码. copy %0 "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\P ...

  10. [状压DP]车

    车 车 车 题目描述 在 n ∗ n n*n n∗n( n ≤ 20 n≤20 n≤20)的方格棋盘上放置 n n n个车(可以攻击所在行.列),有些格子不能放,求使它们不能互相攻击的方案总数. 输入 ...