oj1262の質問:3 ---最初は整数T(T <= 24)で、次にTグループのテストデータがあり、各データグループには4つの整数が含まれ、2つの行を占め、ボードの初期レイアウトを示します。

元のタイトル

ここに画像の説明を挿入

分析とコード


最初はこの質問を理解していませんでした、別の生徒の指導の下で理解しました。一般的な考えを理解したら、書き留めておきます。まず、ここでは写真を見ることができませんが、サンプルの出力とサンプルの出力から学びましたターゲットインターフェースは次のとおりです。
ここに画像の説明を挿入
質問の意味を理解します。おおまかに0の位置は空の位置に相当し、隣接する位置はHuarong Roadのようにこの空の位置に移動できます。
多くの状況があるため、0を同じ位置に均一に移動してから判断することができます。隣接する位置のみを移動できるため、配列を設定することもできます。
ここに画像の説明を挿入
上の図は、data [i]のiの位置であり、使用しますforループは0をdata [3]の位置に移動し、次にdata [0]、data [1]、およびdata [2]の相対位置を検討して位置を決定します。次の
ここに画像の説明を挿入
図には3つの状況があり
ここに画像の説明を挿入
ます。次のコード:

#include<iostream>
using namespace std;
int main()
{
    
    
    int num[4];
    int n;
    cin >> n;
    while(n--) 
    {
    
    
        cin>>num[0]>>num[1]>>num[3]>>num[2];
        for (int i=0; i<3; i++) 
        {
    
    
            if (num[i]==0) 
            {
    
    
                num[i] = num[i+1];
                num[i+1] = 0;
            }
        }
        int sum = num[0]*100+num[1]*10+num[2];
        if (sum==123||sum==231||sum==312)
            cout << "YES" << endl;
        else
            cout << "NO" << endl;
    }
    return 0;
}

それがあなたを助けるなら、あなたはそれを高く評価することもできます!

おすすめ

転載: blog.csdn.net/Freedom_cao/article/details/108437916