HDU 5540 Secrete Master Plan

来源:互联网 发布:淘宝联盟怎么买东西 编辑:程序博客网 时间:2024/05/18 19:40

距阵的旋转,容易扩展到高维

#include <cstdio>struct Mat{    int a[2][2];};bool operator == (Mat x, Mat y){    for(int i = 0; i < 2; i++)        for(int j = 0; j < 2; j++)            if(x.a[i][j] != y.a[i][j]) return false;    return true;}Mat rotate_mat(Mat x){    Mat y;    for(int i = 0; i < 2; i++)        for(int j = 0; j < 2; j++)            y.a[i][j] = x.a[j][1 - i];    return y;}bool ok(Mat x, Mat y){    if(x == y) return true;    x = rotate_mat(x);    if(x == y) return true;    x = rotate_mat(x);    if(x == y) return true;    x = rotate_mat(x);    if(x == y) return true;    return false;}int main(){    int T;    scanf("%d", &T);    for(int ca = 1; ca <= T; ca++)    {        Mat x, y;        for(int i = 0; i < 2; i++)            for(int j = 0; j < 2; j++)                scanf("%d", &x.a[i][j]);        for(int i = 0; i < 2; i++)            for(int j = 0; j < 2; j++)                scanf("%d", &y.a[i][j]);        printf("Case #%d: %s\n", ca, ok(x, y) ? "POSSIBLE" : "IMPOSSIBLE");    }    return 0;}


0 0
原创粉丝点击