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
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP