文章

3

粉丝

274

获赞

3

访问

38.9k

头像
这道题oj上面的几个坑提醒注意
P1377 北京航空航天大学机试题
发布于2020年4月11日 18:00
阅读数 16.7k

1 多组输入输出,我一开始没有处理,只能通过50%,然而 北航的前面素数那道题,我也没有处理,竟然过了百分百;

2 旋转的时候记得 如果你只是设置了三个矩阵,一个作为旋转后的矩阵来做这道题的话,记得旋转90°之后,要更新之前用于选择的矩阵

 

登录查看完整内容


登录后发布评论

6 条评论
dnn_yyds
2024年9月4日 03:38

# include <bits/stdc++.h>
using namespace std;


int main(){
    int n;
    while( cin>>n){
    
    int a[n][n] ;
    int b[n][n] ;
    int a1[n][n] ;
    int a2[n][n] ;
    int a3[n][n] ;
    
    //a的输入 
    for (int i =1; i<=n ; i++){
        for (int j =1; j<=n ; j++){
            cin>>a[i][j];
        }
    }
    //b的输入 
    for (int i =1; i<=n ; i++){
        for (int j =1; j<=n ; j++){
            cin>>b[i][j];
        }
    }
    

    //90
     for (int i =1; i<=n ; i++){
        for (int j =1; j<=n ; j++){
            a1[j][n-i+1] = a[i][j];
            }}

    
     for (int i =1; i<=n ; i++){
        for (int j =1; j<=n ; j++){
            a2[j][n-i+1] = a1[i][j];
            }}
     for (int i =1; i<=n ; i++){
        for (int j =1; j<=n ; j++){
            a3[j][n-i+1] = a2[i][j];
            }}
    
    
     bool flag1;
    for (int i =1; i<=n ; i++){
        for (int j =1; j<=n ; j++){
            if (b[i][j] == a[i][j])
            flag1 = true;
            else {
            flag1 = false; 
            break;
            }
            
        }
    }
    
     bool flag2;
    for (int i =1; i<=n ; i++){
        for (int j =1; j<=n ; j++){
            if (b[i][j] == a1[i][j])
            flag2 = true;
            else {
            flag2 = false; 
            break;
            }
            
        }
    }
    
     bool flag3;
    for (int i =1; i<=n ; i++){
        for (int j =1; j<=n ; j++){
            if (b[i][j] == a2[i][j])
            flag3 = true;
            else {
            flag3 = false; 
            break;
            }
            
        }
    }
    
    bool flag4;
    for (int i =1; i<=n ; i++){
        for (int j =1; j<=n ; j++){
            if (b[i][j] == a3[i][j])
            flag4 = true;
            else {
            flag4 = false; 
            break;
            }
            
        }
    }
    
    if (flag1) {cout<<0<<endl;flag2=false;flag3=false;flag4=false;}
    if (flag2) {cout<<90<<endl;flag3=false;flag4=false;}
    if (flag3) {cout<<180<<endl;flag4=false;}
    if (flag4) cout<<270<<endl;
    if (flag1 == false  && flag2 == false && flag3 == false && flag4 == false) cout << -1<<endl;

}
    return 0;
}

为啥

赞(0)

dnn_yyds : 回复 dnn_yyds: 为啥我的成功率一直是80%,不知道哪里错了,呜呜呜。

2024年9月4日 03:39
kerrychen
2021年1月23日 09:51

补充一个坑,就是如果判断完是0度之后不能再去旋转矩阵了,我就是因为这样然后一直百分之五十,看了博主的代码后才改过来

赞(0)
983103231
2020年4月22日 10:03

我设置了两组输入啊,为什么还是只能通过50%啊,,很迷

赞(0)

wxq : 回复 983103231: while(scanf("%d", &n) != EOF){ //在这个while循环里面处理一个测试点 }

2020年7月14日 18:43
bocai
2020年4月12日 09:13

okksmiley

赞(0)