-2
//2D array with row4 and column4


11  12  18  40
14  15  13  22
11  17  19  23
17  14  20  28

私の質問は、このようにアイデアをループする方法です。[0][0] = 11 をループする場合。 12 、 18 、 40 である同じ行全体と、同じ列全体 14 、 11 、 17 はカウントできません。その後、2 回目のループはテーブルをループするだけです。このようなサンプル

**11**  **12**  **18**  **40**
**14**    15      13      22
**11**    17      19      23
**17**    14      20      28

私のループは、 ** なしでそれらの番号を読み取ることができます。二度目。2 番目の列のうち最小の値を選択して変数 temporaryA に格納し、3 番目のループでは 3 番目の列を選択して最小値を選択し、temporaryB に格納し、4 番目のループでは 4 番目の列を選択して temporaryC に格納します。

ついに。私の答えは、私が今選んだ最初の数字です ANswer = 11 + temporaryA + temporaryB +temporaryC

void BranchandBound( int **minimumCost , int p , int j ){

/*
11  12  18  40
14  15  13  22
11  17  19  23
17  14  20  28
*/
bool *stars = new bool[4];
int totalMin = 0;
for( int y = 0 ; y < p ; y++ ){
    int min,iMin = -1;
        for( int x = 0 ; x < j ; x++ ){
        if( !stars[y] || (iMin < 0 || min > minimumCost[y][x]) ){
            min = minimumCost[y][x];
            cout << "minimum : " << min << endl;
            iMin = min;
            totalMin += min;
        }
        stars[iMin] = 1;
    }
}

cout << "Total : " << totalMin << endl;

}

4

1 に答える 1