#36650: 找了好久還是看不到問題


p0966543710@gmail.com (Nicole Yang)

學校 : 不指定學校
編號 : 238960
來源 : [111.254.154.8]
最後登入時間 :
2024-08-21 09:24:57
b965. 2. 矩陣轉換 -- 2016年3月apcs | From: [120.117.72.138] | 發表日期 : 2023-07-31 12:36

用C++寫的,我嘗試檢查和詢問Chat GPT都沒有發現明顯問題,可是在第二個部分就出現問題,只知道和正確答案正好左右相反,大概是演算法出問題,可是真的找不到,可以幫我看看嗎QAQ

(完整程式碼如下 抱歉有點亂)
#include <iostream>
#include <vector>
using namespace std;

void rotate(int R, int C, vector<vector<int>>& B,vector<vector<int>>& B1){
    for(int i = 0; i < R; i++){
        for(int j = 0; j < C; j++){
            B1[C-1-j][i] = B[i][j];
        }
    }
}
void flip(int R, int C, vector<vector<int>>& B){
    for(int i = 0; i < R/2; i++){
        for(int j =  0; j < C; j++){
            int temp = B[i][j];
            B[i][j] = B[R-1-i][j];
            B[R-1-i][j] = temp;
        }
    }
}
void cin_B(int R, int C, vector<vector<int>>& B){
    for(int i = 0; i < R;i++){
        for(int j = 0; j < C; j++){
            cin >> B[i][j];
        }
    }
}
void print_B(int R,int C,vector<vector<int>>& B){
    cout << R <<" "<< C << endl;
    for(int i = 0; i < R;i++){
        for(int j = 0; j < C; j++){
            cout << B[i][j];
            if(j!=C-1){
                cout<<" ";
            }
        }
    cout << endl;
    }
}
int main(){
    vector<vector<int>> B(11,vector<int>(11,0));
    vector<vector<int>> B1(11,vector<int>(11,0));
    int R,C,M,m,count=0;
    while(cin >> R >> C >> M){
        if (R == 0 && C == 0) {
            break;
        }
        cin_B(R,C,B);
        for(int i = 0; i < M; i++){
            cin >> m;
            if(m==0){
                if(count==0){
                    rotate(R,C,B,B1);
                    count = 1;
                }
                else{
                    rotate(C,R,B1,B);
                    count = 0;
                }
            }
            if(m==1){
                if(count==0){
                    flip(R,C,B);
                }
                else{
                    flip(C,R,B1);
                }
            }
        }
        if(count==0){
            print_B(R,C,B);
        }
        else{
            print_B(C,R,B1);
        }
    }
return 0;    
}
 
#36705: Re: 找了好久還是看不到問題


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [39.9.74.255]
最後登入時間 :
2024-10-14 22:20:08
b965. 2. 矩陣轉換 -- 2016年3月apcs | From: [118.160.198.38] | 發表日期 : 2023-08-03 21:06

因為是B回推A,所以要從最後一次操作開始計算

 
#36711: Re: 找了好久還是看不到問題


p0966543710@gmail.com (Nicole Yang)

學校 : 不指定學校
編號 : 238960
來源 : [111.254.154.8]
最後登入時間 :
2024-08-21 09:24:57
b965. 2. 矩陣轉換 -- 2016年3月apcs | From: [111.254.161.183] | 發表日期 : 2023-08-03 22:31

因為是B回推A,所以要從最後一次操作開始計算


太感謝您啦 ! 終於過了呀ᕕ(ᐛ)ᕗ

 
#36712: Re: 找了好久還是看不到問題


p0966543710@gmail.com (Nicole Yang)

學校 : 不指定學校
編號 : 238960
來源 : [111.254.154.8]
最後登入時間 :
2024-08-21 09:24:57
b965. 2. 矩陣轉換 -- 2016年3月apcs | From: [111.254.161.183] | 發表日期 : 2023-08-03 22:31

因為是B回推A,所以要從最後一次操作開始計算


太感謝您啦 ! 終於過了呀ᕕ(ᐛ)ᕗ

 
ZeroJudge Forum