社区讨论

怎么会有4个WA

P1205[USACO1.2] 方块转换 Transformations参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mji64e9p
此快照首次捕获于
2025/12/23 13:52
3 个月前
此快照最后确认于
2025/12/25 21:25
2 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int n;
char a[11][11],b[11][11];
bool same(char a[][11],char b[][11]){
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            if(a[i][j]!=b[i][j]){
                return false;
            }
        }
    }
    return true;
}
bool r90(char a[][11]){
    char mp[11][11];
    for(int i=1,x=n;i<=n;i++,x--){
        for(int j=1;j<=n;j++){
            mp[i][j]=a[j][x];
        }
    }
    return same(mp,b);
}
bool r180(char a[][11]){
    char mp[11][11];
    for(int i=1,x=n;i<=n;i++,x--){
        for(int j=1,y=n;j<=n;j++,y--){
            mp[i][j]=a[y][x];
        }
    }
    return same(mp,b);
}
bool r270(char a[][11]){
    char mp[11][11];
    for(int i=1;i<=n;i++){
        for(int j=1,y=n;j<=n;j++,y--){
            mp[i][j]=a[y][i];
        }
    }
    return same(mp,b);
}
bool inv(char a[][11]){
    char mp[11][11];
    for(int i=1;i<=n;i++){
        for(int j=1,y=n;j<=n;j++,y--){
            mp[i][y]=a[i][j];
        }
    }
    return same(mp,b);
}
bool com(char a[][11]){
    char mp[11][11];
    for(int i=1;i<=n;i++){
        for(int j=1,y=n;j<=n;j++,y--){
            mp[i][y]=a[i][j];
        }
    }
    return r90(mp)||r180(mp)||r270(mp);
}
int main(){
	cin>>n;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            cin>>a[i][j];
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            cin>>b[i][j];
        }
    }
    if(r90(a)){
        cout<<1;
    }
    else if(r180(a)){
        cout<<2;
    }
    else if(r270(a)){
        cout<<3;
    }
    else if(inv(a)){
        cout<<4;
    }
    else if(com(a)){
        cout<<5;
    }
    else if(same(a,b)){
        cout<<6;
    }
    else{
        cout<<7;
    }
    return 0;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...