C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++でn*mグリッドをペイントするコスト


このチュートリアルでは、n*mグリッドのペイントのコストを見つけるプログラムについて説明します。

このために、2つの整数nとmが提供されます。私たちのタスクは、n * mグリッドをペイントする最小コストを計算することです。セルをペイントするコストは、それに隣接するペイントされたセルの数に等しくなります。

#include <bits/stdc++.h>
using namespace std;
//calculating the minimum cost
int calc_cost(int n, int m){
   int cost = (n - 1) * m + (m - 1) * n;
   return cost;
}
int main(){
   int n = 4, m = 5;
   cout << calc_cost(n, m);
   return 0;
}

出力

31

  1. C++プログラムでN×3グリッドをペイントする方法の数

    サイズがnx3のグリッドがあり、グリッドのすべてのセルを3色のうちの1つだけでペイントするとします。ここで使用される色は、赤、黄、緑です。 ここで、2つの隣接するセルが同じ色を持たないという制約があります。グリッドの行数はn個です。最後に、このグリッドをペイントする方法の数を見つける必要があります。答えは非常に大きい可能性があるため、10 ^ 9+7を法として返します。 したがって、入力が1のような場合、出力は12になります これを解決するには、次の手順に従います- m =10 ^ 9 + 7 関数add()を定義します。これには、a、b、が必要です。 retu

  2. C++でN×3グリッドをペイントする方法の数

    サイズnx3のグリッドがあり、グリッドの各セルを3色のうちの1つだけでペイントするとします。色は赤、黄、緑です。これで、隣接する2つのセルが同じ色にならないという制約があります。グリッドの行数はnです。このグリッドをペイントする方法の数を見つける必要があります。答えは非常に大きい可能性があるため、10 ^ 9+7を法として返します。 したがって、入力が1のような場合、出力は12になります これを解決するには、次の手順に従います- m =1 ^ 9 + 7 関数add()を定義します。これには、a、b、が必要です。 return((a mod m)+(b mod m