-
与えられた条件を満たす配列内のペアの数を見つけるためのC++プログラム
配列numsにn個の数値が与えられているとします。配列から2つの数値のペアを選択する必要があり、配列内のそれらの位置の差が2つの数値の合計に等しいという条件があります。与えられた数の配列から、合計n(n --1)/2個の合計ペアが存在する可能性があります。配列からそのようなペアの総数を見つける必要があります。 したがって、入力がn =8、nums ={4、2、1、0、1、2、3、3}のような場合、出力は13になります。 アレイにはそのようなペアが13個存在する可能性があります。 これを解決するには、次の手順に従います- Define an array vals(n) for initia
-
ポリゴンがグリッド内に持つ辺の数を調べるC++プログラム
次元hxwのグリッドが与えられていると仮定します。グリッドには、白と黒の2種類のセルがあります。白いセルは「。」で表され、黒いセルは「#」で表されます。これで、グリッドにはポリゴンを形成する複数の黒いセルが含まれます。ポリゴンの辺の数を調べる必要があります。グリッドの最も外側のセルは常に白であることに注意してください。 したがって、入力がh =4、w =4、grid ={....、 。##。、 。##。、 ....}の場合、出力は4になります。 黒いセルは正方形を形成し、正方形には4つの辺があります。 ステップ これを解決するには、次の手順に従います- sides := 0 for in
-
与えられたグラフのブリッジエッジの数を見つけるためのC++プログラム
n個の頂点とm個のエッジを含む重み付けされていない無向グラフが与えられたとします。グラフのブリッジエッジは、グラフを削除するとグラフが切断されるエッジです。与えられたグラフでそのようなグラフの数を見つける必要があります。グラフには、平行なエッジや自己ループは含まれていません。 したがって、入力がn =5、m =6、edges ={{1、2}、{1、3}、{2、3}、{2、4}、{2、5}、{3 、5}}の場合、出力は1になります。 グラフには、{2、4}のブリッジエッジが1つだけ含まれています。 これを解決するには、次の手順に従います- mSize := 100 Define an
-
グリッド内の照らされたセルの数を見つけるためのC++プログラム
次元h*wのグリッドが与えられていると仮定します。グリッド内のセルには、球根または障害物のいずれかを含めることができます。電球のセルはそれ自体とその右、左、上、下のセルを照らし、障害物のセルが光を遮らない限り、光はセルを通して輝くことができます。障害物セルは照明できず、電球セルからの光が他のセルに到達するのを防ぎます。したがって、配列「bulb」内のグリッド内の電球セルの位置と配列「obstacles」内の障害物セルの位置を考えると、照らされているグリッド内のセルの総数を見つける必要があります。 したがって、入力がh =4、w =4、bulb ={{1、1}、{2、2}、{3、3}}、障害物
-
照らすことができるセルの最大数を見つけるためのC++プログラム
次元h*wのグリッドが与えられていると仮定します。グリッド内のセルには、電球または障害物のいずれかを含めることができます。電球のセルは、その右、左、上、下のセルを照らし、障害物のセルが光を遮らない限り、光はセルを通して輝くことができます。障害物セルは照明できず、電球セルからの光が他のセルに到達するのを防ぎます。文字列の配列でグリッドが与えられます。ここで、「#」は障害物を表し、「。」は障害物を表します。空のセルを表します。電球は1つしかないため、電球をグリッドに最適に配置するために照明できるセルの最大数を見つける必要があります。 したがって、入力がh =4、w =4、grid ={#...、
-
電車で出発地から目的地の駅に到達するために必要な最小時間を見つけるためのC++プログラム
n個のステーションがm個のトラックで接続されているとします。ステーションの名前は1からnです。トラックは双方向であり、ステーションsrcからステーションdestに到達する必要があります。 i番目の鉄道の出発地と目的地の駅は配列「roads」で指定されます。roads[i]の形式は{station1、station2}です。 j番目の駅から、列車は時間kjの倍数で駅に接続されているすべての駅に向けて出発し、各列車は目的地に到達するのにtjの時間を要します。値は配列departureで指定され、各要素の形式は{tj、kj}です。ここで、srcからdestに到達するのにかかる最小時間を把握する必要が
-
与えられた整数から可能な最大の集計を見つけるためのC++プログラム
2つの整数nとmが与えられ、4つの整数{ai、bi、ci、di}を含む整数のkタプルがあるとします。 4つの配列a、b、c、dが与えられ、a[i]はi番目のタプルの値を示します。ここで、n個の正の整数と1 <=dp [1]
-
建物の中心座標と高さを調べるC++プログラム
中心座標がxc、yc、高さがhの建物があるとします。建物の中心座標はわかりませんが、x座標とy座標、および高度値aを含むn個の情報が提供されます。座標の高度(x、y)は、(h-| x --xc |-| y --yc |、0)の最大値です。建物の中心座標と高さを調べる必要があります。座標xiは配列xで与えられ、yiはteg配列yで与えられ、aiは配列aで与えられます。 したがって、入力がn =3、x ={3、3、2}、y ={4、2、3}、a ={6、6、6}の場合、出力は337になります。 中心座標は3,3で、建物の高さは7です。 ステップ これを解決するには、次の手順に従います- c
-
すべてのセルを黒に変換するために必要な反復回数を調べるC++プログラム
2種類のセルを含むグリッドが与えられたとします。黒い細胞、そして白い細胞。黒いセルは「#」で表され、白いセルは「。」で表されます。グリッドは文字列の配列で提供されます。ここで、次のことを実行する必要があります。 各白いセルを、黒いセルと共有する側を持つ黒に変換します。グリッドのすべてのセルが黒くなるまで、この操作を実行します。 グリッドのすべてのセルを黒に変換するのにかかる反復回数を数えます。開始時のグリッドには、1つの黒いセルが含まれている必要があります。 したがって、入力がh =4、w =4、grid ={#...、 。#..、 ....、 ...#}のような場合
-
グラフ内のスーパー頂点を見つけるためのC++プログラム
n個の頂点を持つグラフが与えられたとします。頂点には1からnの番号が付けられ、配列edgesで指定されたエッジによって接続されます。各頂点には、配列valuesで指定された1からnまでの数値内のx値があります。ここで、グラフからスーパー頂点を見つける必要があります。頂点1からiへの最短経路にi番目の頂点と同じ「x」値を持つ頂点がない場合、頂点iは「スーパー頂点」と呼ばれます。この基準を満たすすべての頂点を印刷します。 したがって、入力がn =5のようである場合、値={1、2、2、1、3}、エッジ={{1、2}、{2、3}、{2、3}、{2、4 }、{4、5}}の場合、出力は1 345に
-
ボードのあるグリッドに色を付ける方法の数を調べるC++プログラム
2行n列のグリッドが与えられたとします。グリッドは、1つのボードが別のボードを乗り越えないように、n個のボードでカバーする必要があります。ここで、ボードは赤、青、緑の間の任意の1色で着色する必要があります。隣接する2枚のボードを同じ色で着色することはできません。必要がなければ、すべての色を使用する必要はありません。グリッドの構成は配列「grid」で指定されます。グリッド内の特定のボードは同じ英語の文字を使用して表され、異なるボードは異なる英語の文字を使用して表されます。ボードを着色する方法の数を見つける必要があります。 したがって、入力がn =4、grid ={abbd、 accd}の場合、
-
小麦の販売から達成できる最大の利益を見つけるためのC++プログラム
m本の道路に接続されている都市がn個あるとします。道路は一方向であり、道路は出発地から目的地までしか行くことができず、その逆はできません。道路は、{source、destination}の形式で配列「roads」で指定されます。現在、都市では、小麦はさまざまな価格で販売されています。都市全体の小麦の価格は、配列「価格」で示されます。ここで、i番目の値はi番目の都市の小麦の価格です。現在、旅行者はどの都市からでも小麦を購入でき、(許可されている場合は)どの都市にも到達して販売することができます。旅行者が小麦を取引することで達成できる最大の利益を見つけなければなりません。 したがって、入力がn
-
グリッド内の偶数のセルの数を最大化するための操作の数を見つけるためのC++プログラム
次元h*wのグリッドが与えられていると仮定します。グリッド内のすべてのセルには、特定の値が割り当てられています。偶数の値を持つセルを最大化する必要があります。これを行うには、以前に選択されていないセルを選択してから、現在のセルの値を1つ減らし、現在のセルに垂直または水平に隣接する別のセルの値を1つ増やします。操作数と増減操作のセル数を出力します。出力は以下の形式になります- 操作の数 1番目(セル位置の減少)-(セル位置の増加) .... n番目(セル位置の減少)-(セル位置の増加) したがって、入力がh =3、w =3、grid ={{2、3、4}、{2、0、1}
-
qクエリの特定のグラフで最短のコストパスを見つけるためのC++プログラム
n個の頂点を含み、最小限に接続されたグラフが与えられたとします。エッジは、エッジが{source、dest、weight}形式で指定されている配列に指定されます。これで、q個のクエリが与えられます。各クエリの形式は{source、destination}です。頂点kを介してソースから宛先までの最短コストパスを見つける必要があります。各クエリのパスのコストを出力します。 したがって、入力がn =6、q =3、k =1、エッジ={{1、2、2}、{1、3、4}、{3、4、2}、{3、5 、3}、{5、6、2}}、クエリ={{1、4}、{2、6}、{2、5}}の場合、出力は6119になります。 ス
-
与えられたすべてのトリプレットの最短コストパスの合計を見つけるためのC++プログラム
n個の都市とm個の道路が都市間にあるとします。 m個の道路は、{aource、destination、weight}の形式の道路の配列で提供されます。ここで、トリプレット(s、t、k)を定義します。ここで、s、t、およびkは都市です。次に、都市sから都市tに到達するために必要な最小時間を計算する必要があります。 sからtを訪問するには、1からk以内の都市のみを訪問できます。都市tがsから到達できない場合は、0を返します。すべてのトリプレット(s、t、k)の最小時間を計算し、それらの合計を出力する必要があります。 したがって、入力がn =4、m =2、edges ={{1、2、5}、{2、3、
-
n個の整数ペアの最小差値を見つけるC++プログラム
それぞれ合計n個とm個の値を持つ2つの配列aとbが与えられたとします。 2つの配列の値を使用して、n個またはm個のペア(どちらか小さい方)を作成する必要があります。ペアには、配列aの値と配列bの値が含まれている必要があります。ペアの値の差が最小で同じになるようにペアを作成する必要があります。値を出力として出力します。 したがって、入力がn =4、m =4、a ={2、3、4、7}、b ={3、4、6、5}の場合、出力は1になります。 作成できるペアは- (3, 4), (4, 5), (7, 6), (2, 3). すべてのペアの値の差は1です。 ステップ これを解決するには、次の手順
-
異動するスキルレベルの異なる従業員の数を見つけるためのC++プログラム
会社にn人の従業員がいるとします。各従業員には、スキルに基づいてランクが付けられます。ランクは1からkまで番号が付けられています。ランクiの従業員数は、配列スキルで指定されます。ここで、skill[i]はランクiの従業員数を表します。現在、会社の新しい支店が開設されており、さまざまなスキルの従業員をその支店に移送する必要があります。その支店に派遣される従業員数はm人です。スキルの異なるm人の従業員をその新しい支店に異動させる方法を見つける必要があります。ブランチの従業員ランク割り当てテーブルブランチを取得するには、次の式を最小化する必要があります。 式は次のとおりです。max(branch
-
特定のマトリックスからパリンドロームマトリックスを作成できるかどうかを確認するC++プログラム
次元がhxwの行列が与えられたとします。マトリックスには英語の文字が含まれています。回文の行と列を含む別のマトリックスを作成する必要があります。つまり、各行と列は回文になります。これを行うには、指定されたマトリックスから行と列の任意の配置を行うことができます。ただし、要素を変更することはできません。つまり、「a」を「b」に変更することはできません。与えられた行列からパリンドローム行列を作成することが可能である場合、trueを返します。それ以外の場合は、falseを返します。 したがって、入力がh =4、w =4、mat ={xxyy、 xyxx、 yxxy、 xyyy}の場合、出力はtrue
-
シーケンスが最小要素と最大要素を保持するシーケンスのペアを見つけるためのC++プログラム
N、M、Kの3つの数値があるとします。N個の水平方向の行とM個の垂直方向の行があります。各セルに1からKまでの整数を書き込み、-のようにシーケンスAとBを定義します。 1からNの範囲の各iについて、A[i]はi番目の行のすべての要素の最小値です 1からMの範囲の各jについて、B[j]はj番目の列のすべての要素の最大値です ペアの数(A、B)を見つける必要があります。答えが大きすぎる場合は、結果mod998244353を返します。 したがって、入力がN=2のような場合。 M =2; K =2の場合、(A [1]、A [2]、B [1]、B [2])は(1,1,1,1)、(1,
-
2組の時計の読み取り値の間の可能な限り最小の時間ギャップを見つけるためのC++プログラム
N個の要素を持つ配列Dがあるとします。コードフェスティバルでは、Amalを含むN+1人の参加者がいると考えてください。アマルはチェックし、彼の都市の現地時間とi番目の人の都市との間の時間差がD[i]時間であることを発見しました。 2つの都市間の時間差:任意の2つの都市AとBについて、都市Aの現地時間が0時の時点で、都市Bの現地時間がd時である場合、これら2つの都市間の時間差都市は最低d時間と24-d時間です。 ここでは、24時間表記を使用しています。次に、N + 1人から選ばれた2人のペアごとに、都市間の時間差を書き留めました。それらの間の最小の時間ギャップをs時間とします。 sの可能な最大