HDU 4772 --Zhuge Liang's Password

原创 2013年12月04日 17:14:33

2013ACM亚洲区杭州站现场赛1003

水题,将第二个矩阵进行旋转0°,90°,180°,270°,然后统计第一个矩阵和第二个矩阵中数字相同的个数,找出个数最多的一组。

暴力模拟即可。

/**
test cases:
3
1 1 1
2 2 2
3 3 3
3 2 1
3 2 1
3 2 1

//ans=9
 */

#include <iostream>
#include <stdio.h>
#include <stdlib.h>

using namespace std;

int a[31][31];
int b[31][31];
int temp[31][31];

int compare(int n)
{
    int ans = 0;
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<n; j++)
        {
            if(temp[i][j] == a[i][j]) ans++;
        }
    }
    return ans;
}

void roll_90(int n)
{
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<n; j++)
        temp[i][j] = b[n-j-1][i];
    }
}
void roll_180(int n)
{
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<n; j++)
        temp[i][j] = b[n-i-1][n-j-1];
    }
}

void roll_270(int n)
{
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<n; j++)
        temp[i][j] = b[j][n-i-1];
    }
}

int main()
{
    int n;
    while(scanf("%d",&n),n)
    {
        int ans = 0;
        int MAX = -32766;
        for(int i=0; i<n; i++)
        {
            for(int j=0; j<n; j++)
                scanf("%d",&a[i][j]);
        }
        for(int i=0; i<n; i++)
        {
            for(int j=0; j<n; j++)
                scanf("%d",&b[i][j]);
        }
        for(int i=0; i<n; i++)
        {
            for(int j=0; j<n; j++)
                temp[i][j] = b[i][j];
        }
        ans = compare(n);
        MAX = ans;
        roll_90(n);
        ans = compare(n);
        if(ans > MAX) MAX = ans;
        roll_180(n);
        ans = compare(n);
        if(ans > MAX) MAX = ans;
        roll_270(n);
        ans = compare(n);
        if(ans > MAX) MAX = ans;
        printf("%d\n",MAX);
    }
    return 0;
}



hdu 4772 Zhuge Liang's Password(水题)

题目连接:hdu 4772 Zhuge Liang's Password 题目大意:给出两个n*n的矩阵,可以旋转矩阵,求两个矩阵重叠位置数值相同的位置最多为多少。 解题思路:水题,写一个...
  • u011328934
  • u011328934
  • 2014年07月06日 19:49
  • 456

HDU 4772 Zhuge Liang's Password(暴力)

思路:只有30乘30的矩阵,暴力旋转就好了 #include using namespace std; int a[32][32]; int b[32][32]; int c[32][32]...
  • qq_21057881
  • qq_21057881
  • 2016年06月08日 15:02
  • 149

Hdu 4772 Zhuge Liang's Password

矩阵行列变换  水~~  将第二矩阵的转90度、180度、270度之后的结果保存进其他矩阵中,将四个矩阵和第一矩阵比较,如果相同位置上的数字相同,则记录,最后输出嘴个矩阵中相同数字的...
  • Chuck_0430
  • Chuck_0430
  • 2013年11月16日 16:22
  • 1002

HDU 4772 Zhuge Liang's Password

Problem Description   In the ancient three kingdom period, Zhuge Liang was the most famous and sm...
  • u012313382
  • u012313382
  • 2014年11月15日 22:30
  • 803

HDU 4772 Zhuge Liang's Password 水

枚举一下四种不同的情况,然后比较一下那个duiyi
  • azx736420641
  • azx736420641
  • 2014年11月14日 20:41
  • 275

HDU 4772 Zhuge Liang's Password

题目 旋转的公式: x'=n+1-y y'=x #include #include #include #include using namespace std; #define MAX...
  • u010638776
  • u010638776
  • 2013年11月24日 22:33
  • 626

hdu:4772 Zhuge Liang's Password

题目:Zhuge Liang's Password 题目大意:给出两个N * N 的数组,问后一个数组(可以旋转)与前一个数组比较,相同位置上的相同数字的最大个数。 解题思路:...
  • u012997373
  • u012997373
  • 2014年07月07日 10:38
  • 573

HDU 4772 Zhuge Liang's Password 矩阵旋转

Zhuge Liang's Password
  • u014445884
  • u014445884
  • 2014年10月11日 20:29
  • 191

HDU 4772 Zhuge Liang's Password(模拟)

传送门 HDU 4772 Zhuge Liang's Password Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32...
  • weixin_40883049
  • weixin_40883049
  • 2017年12月27日 23:57
  • 14

hdu 4772 Zhuge Liang's Password

点击打开链接 题意:给定两个n*n的矩阵,矩阵可以进行90,180,270的旋转,问两个矩阵完全重合的时候最多有几个数是相同的 思路:暴力枚举第一个矩阵的4种情况和第二个矩阵匹配,求出ans 代...
  • cgl1079743846
  • cgl1079743846
  • 2013年11月13日 17:05
  • 1181
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HDU 4772 --Zhuge Liang's Password
举报原因:
原因补充:

(最多只允许输入30个字)