题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4772

题面:

Zhuge Liang's Password

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 1404    Accepted Submission(s): 926

Problem Description
  In the ancient three kingdom period, Zhuge Liang was the most famous and smart military leader. His enemy was Sima Yi, the military leader of Kingdom Wei. Sima Yi always looked stupid when fighting against Zhuge Liang. But it was
Sima Yi who laughed to the end.

  Zhuge Liang had led his army across the mountain Qi to attack Kingdom Wei for six times, which all failed. Because of the long journey, the food supply was a big problem. Zhuge Liang invented a kind of bull-like or horse-like robot called "Wooden Bull & Floating
Horse"(in abbreviation, WBFH) to carry food for the army. Every WBFH had a password lock. A WBFH would move if and only if the soldier entered the password. Zhuge Liang was always worrying about everything and always did trivial things by himself. Since Ma
Su lost Jieting and was killed by him, he didn't trust anyone's IQ any more. He thought the soldiers might forget the password of WBFHs. So he made two password cards for each WBFH. If the soldier operating a WBFH forgot the password or got killed, the password
still could be regained by those two password cards.

  Once, Sima Yi defeated Zhuge Liang again, and got many WBFHs in the battle field. But he didn't know the passwords. Ma Su's son betrayed Zhuge Liang and came to Sima Yi. He told Sima Yi the way to figure out the password by two cards.He said to Sima Yi:


  "A password card is a square grid consisting of N×N cells.In each cell,there is a number. Two password cards are of the same size. If you overlap them, you get two numbers in each cell. Those two numbers in a cell may be the same or not the same. You can
turn a card by 0 degree, 90 degrees, 180 degrees, or 270 degrees, and then overlap it on another. But flipping is not allowed. The maximum amount of cells which contains two equal numbers after overlapping, is the password. Please note that the two cards must
be totally overlapped. You can't only overlap a part of them."

  Now you should find a way to figure out the password for each WBFH as quickly as possible.
 
Input
  There are several test cases.

  In each test case:

  The first line contains a integer N, meaning that the password card is a N×N grid(0<N<=30).

  Then a N×N matrix follows ,describing a password card. Each element is an integer in a cell.


  Then another N×N matrix follows, describing another password card.

  Those integers are all no less than 0 and less than 300.

  The input ends with N = 0
 
Output
  For each test case, print the password.
 
Sample Input
2
1 2
3 4
5 6
7 8
2
10 20
30 13
90 10
13 21
0
 
Sample Output
0
2
 
Source
 



解题:

    简单模拟下旋转就好。

代码:

#include <iostream>
using namespace std;
int m1[31][31],m2[31][31],m3[31][31],m4[31][31],m5[31][31];
int main()
{
int ans,cnt1,cnt2,cnt3,cnt4;
int n;
while(cin>>n&&n)
{
cnt1=cnt2=cnt3=cnt4=0;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
cin>>m1[i][j];
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
cin>>m2[i][j];
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
m3[j][i]=m2[i][n-j+1];
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
m4[j][i]=m3[i][n-j+1];
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
m5[j][i]=m4[i][n-j+1];
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(m2[i][j]==m1[i][j])cnt1++;
if(m3[i][j]==m1[i][j])cnt2++;
if(m4[i][j]==m1[i][j])cnt3++;
if(m5[i][j]==m1[i][j])cnt4++;
}
}
ans=cnt1;
if(cnt2>ans)ans=cnt2;
if(cnt3>ans)ans=cnt3;
if(cnt4>ans)ans=cnt4;
cout<<ans<<endl;
}
return 0;
}

最新文章

  1. sql连表分页查询(存储过程)
  2. CI Weekly #1 | 这份周刊,带你了解 CI/CD 、DevOps、自动化测试
  3. jQuery总体架构
  4. C#析构函数与垃圾回收
  5. 【OpenStack】OpenStack系列3之Swift详解
  6. ZOJ3362 Beer Problem(最小费用任意流)
  7. win8.1系统下,点击一个窗口,【当前活动窗口】该窗口无法置顶
  8. mac下的改装人生——mbp拆卸的各种资源整理
  9. Chrome不支持showModalDialog模态对话框和无法返回returnValue的问题
  10. HDOJ--ACM-Steps--2.1.3--Cake(GCD,简单数学)
  11. php 设计模式系列(一)
  12. SQL编程的一些良好好习惯
  13. Swift连接字符串和字符
  14. hibernate第二天
  15. Argparse简易教程
  16. Solr的中英文分词实现
  17. C语言中printf,scanf,puts,%%等输出格式
  18. A tuple is defined as a function
  19. hibernate学习(缓存)
  20. windows 下使用 protobuf

热门文章

  1. cmd.exe启动参数说明
  2. ListView控件绑定DataSet
  3. android项目 之 记事本(13) ----- 查看图片及播放录音
  4. 剑指offer——链表相关问题总结
  5. 网页计算器 &amp;&amp; 简易网页时钟 &amp;&amp; 倒计时时钟
  6. 【转载】LR - 细节解析,为什么LR脚本会去访问“脚本中不存在的“资源?
  7. Android 四大组件学习之Server一
  8. Android 创建Listener监听器形式选择:匿名内部类?外部类?
  9. css进阶读书笔记
  10. Cassandra安装和初次使用