-
指定されたインデックスを更新し、C++の範囲内のgcdを見つけるためのクエリ
このチュートリアルでは、特定のインデックスを更新するクエリを検索し、範囲内のgcdを検索するプログラムについて説明します。 このために、整数とQクエリを含む配列が提供されます。私たちのタスクは、指定されたクエリの結果を見つけることです(Xによって指定された値を更新し、2つの指定された値の間のgcdを見つけます)。 例 #include <bits/stdc++.h> using namespace std; //getting middle index int findMiddle(int s, int e) { return (s + (e - s)
-
C ++でBITを使用して、色付きツリーのサブツリー内の個別の色の数をクエリする
このチュートリアルでは、BITを使用して色付きツリーのサブツリー内の異なる色の数を照会するプログラムについて説明します。 このために、各ノードが指定された配列で示される色を持つルートツリーが提供されます。私たちのタスクは、ツリー内の特定のノードの下にあるすべての異なる色のノードを見つけることです。 例 #include<bits/stdc++.h> #define MAXIMUM_COLOUR 1000005 #define MAXIMUM_NUMBER 100005 using namespace std; vector<int> tree[MAXIMUM_NUMB
-
C++でL番目に小さい数値とR番目に小さい数値の絶対差を返すクエリ
このチュートリアルでは、L番目に小さい数値とR番目に小さい数値の絶対差を返すクエリを見つけるプログラムについて説明します。 このために、整数とQクエリを含む配列が提供されます。私たちのタスクは、L番目に小さい値とR番目に小さい値のインデックス間の絶対差を見つけることです。 例 #include <bits/stdc++.h> using namespace std; //returning the result of a query int respondingQuery(pair<int, int> arr[], int l, int r) { &nb
-
LCMがC++で最大になるように、N以下の3つの整数を見つけます
このチュートリアルでは、LCMが最大になるようにN以下の3つの整数を見つけるプログラムについて説明します。 このために、整数値が提供されます。私たちのタスクは、LCMが最大になるように、指定された値よりも小さい他の3つの整数を見つけることです。 例 #include <bits/stdc++.h> using namespace std; //finding three integers less than given value //having maximum LCM void findMaximumLCM(int n) { if (n % 2 !=
-
C++のツリーでの祖先と子孫の関係のクエリ
このチュートリアルでは、ツリー内の祖先と子孫の関係のクエリを見つけるプログラムについて説明します。 このために、ルートツリーとQクエリが提供されます。私たちのタスクは、クエリで指定された2つのルートが、もう一方の祖先であるかどうかを確認することです。 例 #include <bits/stdc++.h> using namespace std; //using DFS to find the relation between //given nodes void performingDFS(vector<int> g[], int u, int parent, int
-
C++の迷路でコーナーセルからミドルセルへのパスを検索する
数字で満たされた正方形の迷路があるとします。コーナーセルから中央セルまでのすべてのパスを見つける必要があります。ここでは、セルから上、下、右、左の4方向に正確にnステップ進みます。ここで、nはセルの値です。したがって、セル[i、j]からセル[i + n、j]から[i-n、j]、[i、j + n]、および[i、j-n]に移動できます。ここで、nはセル[の値です。 i、j]。 したがって、入力が次のような場合 3 4 4 4 7 3 4 6 3 6 7 5 6 6 2 6 6 2 3 3 4 3
-
C++のk個のリストから要素を含む最小範囲を検索します
k個の異なるリストがあるとします。要素が並べ替えられます。 k個の異なるリストのそれぞれから少なくとも1つの番号を含む最小範囲を検索する必要があります。ここで、範囲[a、b]は、b-a
-
C++のバイナリ検索ツリーで最も近い要素を検索します
1つの二分探索木(BST)と別のターゲット値があるとします。その与えられたBSTで、ターゲットに最も近いk個の値を見つける必要があります。ここで、ターゲット値は浮動小数点数です。 kは常に有効であり、k≤合計ノードであると想定できます。 したがって、入力が次のような場合 target =3.714286、k =2の場合、出力は[4,3]になります。 これを解決するには、次の手順に従います- 関数pushSmaller()を定義します。これにより、ノード、スタックst、およびターゲットが取得されます。 ノードが存在しない場合は、-を実行します ノードの値が<ターゲッ
-
C++で指定された文字列から方向を見つけます
LとRのみを含む文字列があるとします。これは、それぞれ左回転と右回転を示し、ピボットの最終的な方向を見つける必要があります。ここでの方向は、北(N)、東(E)、南(S)、西(W)です。ピボットはコンパスの北(N)に向けられていると想定しています。 したがって、入力が「RRLRLLR」のような場合、出力はEになります。最初の方向はNであるため、RRはSを指し、LRは同じNを再び指し、LLは前の位置Nを指します。 RはEを指します。したがって、Eが最終です。 これを解決するには、次の手順に従います- カウント:=0 方向:=空白の文字列 初期化i:=0の場合、i − sの長
-
C++の他の配列要素とは異なる頻度の要素を検索します
N個の数値の配列があり、配列内の各要素が1つの要素を除いて同じ回数(m回、これも指定されています)表示されるとします。この要素を見つける必要があります。 したがって、入力がA =[6、2、7、2、2、6、6]、m =3の場合、出力は7になります。 これを解決するには、次の手順に従います- INT_SIZE:=8*整数型変数のサイズ サイズ-INT_SIZEの配列カウントを定義します。そして0で埋める 初期化i:=0の場合、i
-
C++で他のすべての要素が2回出現する配列に1回出現する要素を検索します
配列Aがあるとします。この配列には、2回出現する異なる数があります。ただし、1回だけ発生する番号は1つだけです。その配列からその要素を見つける必要があります。 A =[1、1、5、3、2、5、2]とすると、出力は3になります。各数値が2回あるため、XORを実行してその要素をキャンセルできます。 y XOR y =0がわかっているからです これを解決するために、次の手順に従います。 1つの変数res=0を取ります 配列Aの各要素eについて、プリフォームres:=res XOR e 解像度を返す 例 理解を深めるために、次の実装を見てみましょう- class Solu
-
C++で合計がkに等しい最大面積の長方形の部分行列を見つけます
2D行列マットと値Kがあるとすると、合計がKと同じである最長の長方形の部分行列を見つける必要があります。 したがって、入力が次のような場合 2 8 -5 6 -7 7 8 -3 11 -14 4 3 -4 3 1 10 そしてK=9 その場合、出力は左上のポイントが(1、0)、右下のポイントが(3、2)になります。 -7 7 8 11 -14 4 -4 3 1 これを解決するには、次の手順に従います- MAX:=100 関数sum_k()を定義
-
数字の配列から3の最大の倍数を見つける-C++で2を設定する
異なる数字の配列があるとします。その配列内の指定された数字の一部を任意の順序で連結することによって生成できる3の最大の倍数を見つける必要があります。答えは非常に大きいかもしれないので、文字列として作成してください。答えがない場合は、空の文字列を返します。 したがって、入力が[7,2,8]の場合、出力は87になります。 これを解決するには、次の手順に従います- 1つの2D配列dを定義します。3つの行があります 配列の数字を並べ替える 合計:=0 初期化i:=0の場合、i <桁のサイズの場合、更新(iを1増やします)、実行- x:=桁[i] d [x m
-
C++で2番目の配列の要素を再配置することによって形成できる辞書式順序で最小のシーケンスを見つけます
n個の数を持つ2つの配列AとBがあるとすると、(A [i] + B [によって形成されるシーケンスになるように、Bの要素自体を再配置する必要があります。 i])再配置後の%nは、辞書式順序で最小です。最後に、辞書式順序で可能な限り最小のシーケンスを返します。 したがって、入力がA ={1、2、3、2}、B ={4、3、2、2}の場合、出力は[0、0、1、2]になります。 これを解決するには、次の手順に従います- n:=aのサイズ 1つのマップを定義するmy_map 1つのセットを定義するmy_set 初期化i:=0の場合、i
-
C++で最大Kペアを選択するペアの配列の最大コストを見つけます
ペアAの配列があるとします。最大でKペアを選択するための最大コストを見つける必要があります。この場合、ペアタイプの要素の配列のコストは、選択されたペアの最初の要素の合計と、選択されたペアの2番目の要素の中で最小のものの積です。例として、これらのペアが選択された場合(4、8)、(10、3)、および(3、6)、コストは(4 + 10 + 3)*(3)=51、K=3の場合になります。 したがって、入力がA =[(15、5)、(65、25)、(35、20)、(20、5)、(35、20)、(15、18)、(3、8 )、(12、17)]、K =4の場合、出力は2700になります これを解決するには、
-
C++で長方形を挿入した後に残っている長方形の最小数を見つけます
N個の異なる長方形の幅と高さがあるとします。長方形を別の長方形に挿入した後、残っている長方形の最小数を見つける必要があります。したがって、W1とW2がそれぞれ長方形R1とR2の幅である場合。また、H1とH2はそれぞれR1とR2の高さであり、W1
-
C++でNがポイントNから移動した後にすべてのポイントに到達する確率を求めます
数直線上の人の初期位置を表す番号Nがあるとします。また、人が左に行く確率であるLもあります。ポイントNからN回の移動を完了した後、数直線上のすべてのポイントに到達する確率を見つける必要があります。各移動は、左または右のいずれかになります。 したがって、入力がn =2、l =0.5の場合、出力は[0.25、0、0.5、0、0.25]になります。 これを解決するには、次の手順に従います- 高:=1-低 サイズがn+1 x 2 * n + 1の配列Aを定義し、0で埋めます A [1、n + 1] =高、A [1、n-1]=低 初期化i:=2の場合、i <=nの場合、更新(
-
C++で2つの異なる良好なノードの任意のペア間の最短距離を見つけます
N個の異なるノードとM個のエッジを持つ特定の重み付き無向グラフがあるとすると、一部のノードは適切なノードです。 2つの異なる良好なノードの任意のペア間の最短距離を見つける必要があります。与えられた図では、次のグラフの黄色は適切なノードと見なされます。 したがって、入力が次のような場合 その場合、出力は11になります。これは、適切なノードのペアとそれらの間の距離が次のとおりであるためです。(1から3)距離は11、(3から5)距離は13、(1から5)距離は24、そのうち11が最小です。 これを解決するには、次の手順に従います- N:=100005 MAX_VAL:=999
-
C ++のリスト(L)からすべての単語を連結して作成された文字列(S)の部分文字列の開始インデックスを検索します
文字列sがあり、単語が少ない別のリストがあるとします。これらの単語は同じ長さです。 s内の部分文字列のすべての開始インデックスを見つける必要があります。これは、単語内の各単語を1回だけ連結したものであり、文字が介在することはありません。 したがって、入力が「wordgoodgoodgoodword」のようで、単語が[word、 good]の場合、出力は[0,12]になります。これは、インデックス0と12で始まる部分文字列が「wordgood」と「goodword」であるためです。 これを解決するには、次の手順に従います- ok()というメソッドを定義します。これには、文字列s、マップ
-
C++で関数Y=(X ^ 6 + X ^ 2 + 9894845)%981の値を見つけます
f(x)=(x ^ 6 + x ^ 2 + 9894845)%971のような関数を指定したとすると、指定されたxの値に対して、値を見つける必要があります。 f(x)の。 したがって、入力が5のような場合、出力は469になります。 これを解決するには、次の手順に従います- 関数power_mod()を定義します。これは、底、指数、モジュラス、を取ります。 ベース:=ベースモッドモジュラス 結果:=1 0の場合、実行- 指数が奇数の場合、- 結果:=(結果*ベース)modモジュラス base:=(base * base)modモジュラス 指数=