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

C++で行/列に複数のアイテムが含まれないようにアイテムをn^2の位置に配置する方法


この問題では、これらの線の間にn2の交点があるように配置された、垂直方向と水平方向にn本の線があるような整数nが与えられます。私たちの仕事は、4つのアイテムをこれらの交差点に配置できる方法の総数を見つけることです

行と列に複数のアイテムが含まれないようにします。

問題を理解するために例を見てみましょう

入力

n=4

出力

24

説明

C++で行/列に複数のアイテムが含まれないようにアイテムをn^2の位置に配置する方法

この問題を解決するには、nC4になるアイテムを持つn本の線から4本の水平線を選択する必要があります。これで、すべての水平線にn本の垂直線があるため、最初に選択した水平線にアイテムを配置する方法はn個あります。次に、n-1個の可能な配置がある次の選択された水平線に移動します。そしてそれは同じように3番目をn-2に配置し、n-3の方法で前後に配置することができます。したがって、ワットの総数は n になります。 C4 * n *(n-1)*(n-2)*(n-3)

アルゴリズムの実装を示すプログラム

#include <iostream>
using namespace std;
long long placeItems(int n) {
   return (1LL * (1LL *
   ((n) * (n - 1) * (n - 2) * (n - 3)) / (4 * 3 * 2 * 1)) *
   ((1LL * (n) * (n - 1) * (n - 2) * (n - 3))));
}
int main() {
   int n = 4;
   cout<<"The number of way is which 4 items can be placed in the intersection of "<<n;
   cout<<" lines vertically and horizotally are "<<placeItems(n);
   return 0;
}

出力

The number of way is which 4 items can be placed in the intersection of 4 lines vertically and horizotally are 24

  1. C++で行/列に複数のアイテムが含まれないようにアイテムをn^2の位置に配置する方法

    この問題では、これらの線の間にn2の交点があるように配置された、垂直方向と水平方向にn本の線があるような整数nが与えられます。私たちの仕事は、4つのアイテムをこれらの交差点に配置できる方法の総数を見つけることです 行と列に複数のアイテムが含まれないようにします。 問題を理解するために例を見てみましょう 入力 n=4 出力 24 説明 この問題を解決するには、nC4になるアイテムを持つn本の線から4本の水平線を選択する必要があります。これで、すべての水平線にn本の垂直線があるため、最初に選択した水平線にアイテムを配置する方法はn個あります。次に、n-1個の可能な配置がある次の選択され

  2. C ++で数値のxorがゼロより大きくなるように、すべての行の数値を選択できるかどうかを確認します。

    サイズNxMの2D配列が1つあるとします。タスクは、これらの要素のXORがゼロ以外または0より大きいように、すべての行から数値を選択できるかどうかを確認することです。1つの行列がこのように- 7 7 7 10 10 7 XORを実行すると、2つの行の最後の要素が7と10である場合を除いて、答えはゼロ以外になります。 この問題を解決するための解決策は非常に簡単です。最初に、各行の最初の列の要素のXORが0であるかどうかを確認します。ゼロ以外の場合は可能です。それ以外の場合は、いずれかの行に2つ以上の異なる要素があるかどうかを確認します。ある場合は、それ