C++程式檢查能否按正確順序將多米諾骨牌放置在彩色單元格上


假設我們有五個數字n、k1、k2、w和b。有一個2 x n個單元格的棋盤,第一行前k1個單元格和第二行前k2個單元格是白色的。所有其他單元格都是黑色的。我們有w個白色多米諾骨牌和b個黑色多米諾骨牌(2 x 1大小)。如果棋盤上的兩個單元格都是白色的並且沒有被其他多米諾骨牌佔據,則可以在棋盤上放置一個白色多米諾骨牌。同樣,如果兩個單元格都是黑色的並且沒有被其他多米諾骨牌佔據,則可以放置一個黑色多米諾骨牌。如果多米諾骨牌可以水平或垂直放置,我們必須檢查是否可以在棋盤上放置所有w + b個多米諾骨牌?

因此,如果輸入類似於n = 5;k1 = 4;k2 = 3;w = 3;b = 1,則輸出為True。

步驟

為了解決這個問題,我們將遵循以下步驟:

if 2 * w <= (k1 + k2) and 2 * b <= (n - k1 + n - k2), then:
   return true
Otherwise
   return false

示例

讓我們看看下面的實現以更好地理解:

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

bool solve(int n, int k1, int k2, int w, int b) {
   if (2 * w <= (k1 + k2) && 2 * b <= (n - k1 + n - k2)) {
      return true;
   }
   else {
      return false;
   }
}
int main() {
   int n = 5;
   int k1 = 4;
   int k2 = 3;
   int w = 3;
   int b = 1;
   cout << solve(n, k1, k2, w, b) << endl;
}

輸入

5, 4, 3, 3, 1

輸出

1

更新於:2022年3月3日

瀏覽量:118

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告