C++でボックスを円で結合できるかどうかを確認するためのクエリ
このチュートリアルでは、ボックスを円で結合できるかどうかを確認するためのクエリを見つけるプログラムについて説明します。
このために、1からnまでのボックスの円が提供されます。私たちの仕事は、ボックスiが前のロッドと交差することなくロッドでボックスjに接続できるかどうかを見つけることです。
#include <bits/stdc++.h>
using namespace std;
//checking if making a circle from boxes is possible
void isPossible(int n, int q, int queryi[], int queryj[]) {
int arr[50];
for (int i = 0; i <= n; i++)
arr[i] = 0;
for (int k = 0; k < q; k++) {
int check = 0;
if (queryj[k] < queryi[k]) {
int temp = queryi[k];
queryi[k] = queryj[k];
queryj[k] = temp;
}
if (arr[queryi[k]] != 0 || arr[queryj[k]] != 0)
check = 1;
else if (queryi[k] == queryj[k])
check = 1;
else {
for (int i = 1; i < queryi[k]; i++) {
if (arr[i] != 0 && arr[i] < queryj[k] && queryi[k] < arr[i]) {
check = 1;
break;
}
}
if (check == 0) {
for (int i = queryi[k] + 1; i < queryj[k]; i++) {
if (arr[i] != 0 && arr[i] > queryj[k]) {
check = 1;
break;
}
}
}
}
if (check == 0) {
cout << "Possible" << endl;
arr[queryi[k]] = queryj[k];
arr[queryj[k]] = queryi[k];
}
else
cout << "Not Possible" << endl;
}
}
int main() {
int size = 5;
int q = 2;
int queryi[] = { 3, 5 };
int queryj[] = { 1, 4 };
isPossible(size, q, queryi, queryj);
return 0;
} 出力
Possible Possible
-
C++で線が円に接触または交差するかどうかを確認します
円と別の直線があるとします。私たちの仕事は、線が円に接しているか交差しているかを見つけることです。そうでない場合は、線が外側を通過します。したがって、以下のような3つの異なるケースがあります- ここでは、次の手順で解決します。これらは以下のようなものです- 中心と与えられた線の間の垂線Pを見つけます Pを半径r−と比較します rの場合、外部 P =rの場合、タッチします それ以外の場合は内部 垂直距離を取得するには、次の式を使用する必要があります(中心点は(h、k)) $$ \ frac {ah + bk + c} {\ sqrt {a ^ 2 + b ^ 2}} $$
-
C++でべき等行列をチェックするプログラム
行列M[r][c]が与えられた場合、「r」は行数を示し、「c」はr=cが正方行列を形成するような列数を示します。与えられた正方行列がべき等行列であるかどうかを確認する必要があります かどうか。 べき等行列 行列「M」はべき等行列と呼ばれます 行列「M」にそれ自体を掛けたものだけが同じ行列「M」を返す場合、つまり M * M=M。 以下の例のように- 上記の行列はそれ自体で乗算され、同じ行列を返すと言えます。したがって、マトリックスはIデポテンツマトリックスです。 。 例 Input: m[3][3] = { {2, -2, -4}, {-1, 3,