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 水

枚举一下四种不同的情况,然后比较一下那个duiyi

HDU4772-Zhuge Liang's Password

Zhuge Liang's Password Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/...

HDU 4772 Zhuge Liang's Password (简单模拟题)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4772 题面: Zhuge Liang's Password Time Limit: ...

hdu 4772 Zhuge Liang's Password【模拟】水题

Zhuge Liang's Password Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Jav...

hdu4739Zhuge Liang's Mines 暴搜dfs

//给出n个位置,问最多能找到几个正方形 //直接排序然后暴搜就行 #include #include #include #include using namespace std ; const in...
  • cq_pf
  • cq_pf
  • 2015年09月30日 22:25
  • 215

hdu4739 Zhuge Liang's Mines 状态压缩dp,0-1背包

预处理哪4个点可组成的正方形 dp[i]表示集合i的答案,对于每个i枚举前继状态。或用0-1背包 #include #include #include #include #includ...
  • guognib
  • guognib
  • 2013年10月27日 22:51
  • 602

HDU 4739 Zhuge Liang's Mines

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4739 这次网络赛的一个简单题,我没出,坑了队友 其实思路是对的,但是比较乱,也没想到是背包,结束之...

hdu 4739Zhuge Liang's Mines(简单dfs,需要注意重点)

Zhuge Liang's Mines Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth...
  • opm777
  • opm777
  • 2014年04月28日 13:11
  • 955

hdu 4739 Zhuge Liang's Mines

当时没做出来,事后看了别人的博客才知道 #include #include #include #include using namespace std; const int maxx=11...

HDU 4739 Zhuge Liang's Mines (2013 ACM/ICPC Asia Regional Hangzhou Online)

//由于构成的正方形的边要平行于坐标轴 当点数为25时正方形最多为24个 而题目n       #include #include #include #include #include #defin...
  • L_Ecry
  • L_Ecry
  • 2013年09月15日 22:42
  • 520
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HDU 4772 --Zhuge Liang's Password
举报原因:
原因补充:

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