nx 1 のグリッドがあります。少なくとも r 個の赤のセル、少なくとも g 個の緑のセル、少なくとも b 個の青のセルで色を付ける必要があります。(n + r + g <= n)。少なくとも 1 つの位置が異なる場合、2 つのパターンは異なると言われます。いくつの方法で色を付けることができますか。(解決策は、アルゴリズムまたは数学のいずれかです)。
私の試み:
enter code here
int func(int id, int r, int g, int b)
{
int ma = 0;
if (id == n) {
if (r > 0)
ma++;
if (g > 0)
ma++;
if (b > 0)
ma++;
return ma;
}
if (r > 0)
ma += func(r-1, g, b, id + 1);
if (g > 0)
ma += func(r, g-1, b, id + 1);
if (b > 0)
ma += func(r, g, b-1, id + 1);
if (r + g + b < n - id) {
ma += func(r, g, b, id + 1);
}
return ma;
}