-
少なくともGのスコアを取得するために必要なスコアを見つけるためのC++プログラム
2つの配列pとcがあり、両方ともそれぞれD個の要素とG個の要素があるとします。コーディングコンテストで考えてみましょう。各問題のスコアは難易度に基づいています。問題p[i]のスコアは100iです。これらのp[1]+ ... + p [D]の問題は、コンテストに存在するすべての問題です。コーディングサイトのユーザーの番号はtotal_scoreです。ユーザーのtotal_scoreは、次の2つの要素の合計です。 基本スコア :解決されたすべての問題のスコアの合計 ボーナス :ユーザーが100iのスコアですべての問題を解決すると、基本スコアとは別に完全なボーナスc[i]を獲得します。
-
最大の可能な分割をカウントするC++プログラムは、与えられた条件でグラフで作成できます
グラフGの隣接行列があるとします。頂点を空でない集合V1、... Vkに分割できるかどうかを確認する必要があります。たとえば、すべてのエッジが2つの隣接する集合に属する2つの頂点を接続します。答えが「はい」の場合、そのような分割で集合kの可能な最大値を見つける必要があります。 したがって、入力が次のような場合 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 1 0
-
すべてのモンスターを殺すために爆弾を配置するための最小数の場所を見つけるためのC++プログラム
2つの配列XとHがあるとします。どちらもN個の要素を持ち、さらに2つの数字DとAがあります。物語の中で、銀狐がN個のモンスターと戦っているとします。モンスターは一列に並んでおり、i番目のモンスターの座標はX [i]、体力はH[i]です。シルバーフォックスは爆弾を使ってモンスターを攻撃することができます。場所xに爆弾を落とすと、x-Dからx + Dの範囲内のすべてのモンスターにダメージを与えます。それらの体力はAだけ減少します。すべてのモンスターの体力が0になると、キツネが勝ちます。勝つために必要な最小限のものを見つける必要があります。 したがって、入力がD=3のような場合。 A =2; X
-
桁の合計が4で割り切れるAの最大数または等しい数を見つけるC++プログラム
数Aがあるとします。Aに最も近い大きいか等しい興味深い数を見つける必要があります。数字の合計が4で割り切れる場合、その数は興味深い数であると言われます。 したがって、入力がA =432のような場合、4 + 3 + 5 =12であり、4で割り切れるため、出力は435になります。 ステップ これを解決するには、次の手順に従います- while (A / 1000 + A mod 1000 / 100 + A mod 100 / 10 + A mod 10) mod 4 is not equal to 0, do: (increase A by 1) return A
-
ランプによって明るくなったすべてのセルの合計を見つけるC++プログラム
H行とW列のグリッドがあるとします。各正方形が整頓されているか整頓されていない場所。このグリッド内の0個以上の整頓された正方形にランプを配置できます。ランプは、セルを4つの方向(上、下、左、右)のそれぞれで、グリッドの端または乱雑な正方形に初めて到達する直前まで照らすことができます(乱雑なセルは点灯しません)。 )。ランプはまた、それが置かれているセルを明るくします。グリッド内でG[i、j]が。の場合そのセルは整頓されており、「#」の場合は整頓されていません。 Kを整頓された正方形の数とします。ランプを配置する方法は全部で2^Kあります。これらの2^Kの方法のそれぞれについて、1つまたは複数の
-
与えられた式がmを返すかどうかを示すように配列を再配置できることを確認するC++プログラム
n個の要素と別の数mの配列Aがあるとします。次のような方法でアレイを再配置できるかどうかを確認する必要があります $$ \ mathrm {\ sum_ {i =1} ^ {n} \ sum_ {j =1} ^ {n} \ frac {A [j]} {j} =m} $$ A [j]/j操作では丸めは行われません。 したがって、入力がA =[2、5、1]のような場合; m =8の場合、出力はTrueになります。これは、[1、2、5]の配置では、(1/1 + 2/2 + 5/3)+(2/2 + 5/3)+(5 / 3)=8 ステップ これを解決するには、次の手順に従います- sum
-
少なくとも1人の水泳選手に会うのに何分待たなければならないかを数えるC++プログラム
4つの数p、a、b、cがあるとします。プールがあり、3人のスイマーがいます。プールを渡って戻ってくるまで、それぞれa、b、c分かかります。したがって、最初のスイマーは、開始時刻の0、a、2a、3a、...分後にプールの左側にいます。 2番目は0、b、2b、3b、...分で、3番目は0、c、2c、3c、...です。p分後にプールを訪れた場合、彼らは泳ぎ始めました。プールの左側に少なくとも1人のスイマーがいるまで、少なくとも1人は待たなければなりません。 したがって、入力がp=2のような場合。 a =6; b =10; c =9の場合、出力は2でプールの近くにあり、最初のスイマーが6で戻ってくる
-
XORされた結果が合計と同じであるl-rペアの数を見つけるためのC++プログラム
N個の要素を持つ配列Aがあるとします。 A [l] XOR A [l + 1] XOR ... XOR A [r-1] XOR A [r] =A [l] +A[を満たす整数lとrのペアの数を見つける必要があります。 l + 1] + ...A[r]。 したがって、入力がA =[2、5、4、6]の場合、ペア(1,1)、(2,2)、(3,3)、(4、 4)および(1,2)。 ステップ これを解決するには、次の手順に従います- n := size of A Define some arrays of size (n + 1) each, a, s and sx for initialize i
-
ソートされた形式で文字列を並べ替えるために再配置する必要がある文字数を見つけるC++プログラム
n文字の文字列Sがあるとします。 Sには小文字のみが含まれます。 0からnの範囲の数値kを選択してから、Sからk文字を選択し、それらを任意の順序で並べ替える必要があります。このプロセスでは、残りの文字は変更されません。この操作全体を1回だけ実行します。 Sがアルファベット順にソートされるkの値を見つける必要があります。 したがって、入力がS =acdbの場合、「a」は正しい場所にあり、残りの文字を再配置する必要があるため、出力は3になります。 ステップ これを解決するには、次の手順に従います- n := size of S d := S sort the array d j := 0 fo
-
隣接する要素の合計が指定された配列と同じである順列を見つけるためのC++プログラム
n個の要素を持つ配列Aがあるとします。関数F(p)は、p内の隣接する要素の合計のソートされた配列です。したがって、F(p)=sort([p1 + p2、p2 + p3、... pn-1 + pn])。 Aで表される順列があります。F(A)が同じであるAの異なる順列を見つける必要があります。 したがって、入力がA =[2、1、6、5、4、3]の場合、F(A)=sort( [2 + 1、1 + 6、6 + 5、5 + 4、4 + 3])=sort([3、7、11、9、7])=[3,7,7,9,11]。そして、sort([1 + 2、2 + 5、5 + 6、6 + 3、3 + 4])=sort([
-
開始前にゲーム内の最小および最大数の子を見つけるC++プログラム
K個の要素を持つ配列Aがあるとします。ゲームにはN人のプレーヤーがいて、ゲームマスターがそこにいると考えてください。このゲームにはKラウンドがあります。 i番目のラウンドでは、ゲームマスターはA[i]人の子供を持つグループを形成することを発表します。次に、残りの子はできるだけ多くのA[i]子のグループを形成します。 1人の子供が複数のグループに参加することはできません。グループなしで残された人はゲームを離れます。他は次のラウンドに進みます。ラウンドはプレーヤーを失うことなく行うことができます。結局、K回戦後はちょうど2人の子供が残っており、勝者と宣言されています。開始前に、ゲーム内の可能な限り
-
与えられた条件に必要な操作の数を少なくともカウントするC++プログラム
N個の要素を持つ配列Aがあるとします。各操作で、要素を選択し、それを1ずつ増減します。少なくとも次の条件を満たすために必要な操作の数を見つける必要があります- 1からnの範囲のすべてのiについて、第1項から第i項までの項の合計は0ではありません 1からn-1の範囲のすべてのiについて、第1項から第i項までの項の符号は、第1項から(i + 1)項までの項の合計の符号とは異なります。 したがって、入力がA =[1、-3、1、0]の場合、出力は4になります。これは、4つの操作で1、-2、2、-2のようなシーケンスを変換できるためです。最初の1、2、3、および4つの項の合計は、1、-
-
最初から最後まで移動するために必要な最小ステップ数を見つけるためのC++プログラム
座標(x、y)があるとします。 2Dグリッドでは、ロボットは(0、0)の位置にあり、(x、y)に到達したいと考えています。上、下、左、右に移動したり、現在のセルにとどまることができます。可能な限り最小限のコマンドで目的地に到達したいと考えています。必要なステップ数を数える必要があります。 したがって、入力がx=3のような場合。 y =4の場合、出力は7になります ステップ これを解決するには、次の手順に従います- return x + y + minimum of |x - y|, |x - y + 1|, and |x - y - 1| 例 理解を深めるために、次の実装を見てみましょう
-
XORされた合計の可能な最大値を見つけるためのC++プログラム
N個の要素と別の値Kを持つ配列Aがあるとします。0からKの範囲の整数Xの場合、f(X)=(X xor A [1])+(X xor A [2])+.。 。+(X xor A [N])。 fの可能な最大値を見つける必要があります。 したがって、入力がK=7のような場合。 A =[1、6、3]の場合、f(4)=(4 XOR 1)+(4 XOR 6)+(4 XOR 3)=5 + 2 + 7 =14. ステップ これを解決するには、次の手順に従います- n := size of A for initialize i := 45, when i >= 0, update (decrease i
-
XORされた合計が最大になる可能な最大値を見つけるためのC++プログラム
aとbの2つの数があるとします。 xの値に対して、(a XOR x)+(b XOR x)の可能な最小値を見つける必要があります。 したがって、入力がa=6のような場合。 b =12の場合、出力は10になります。これは、x =4の場合、(6 XOR 4)+(12 XOR 4)=2 + 8=10であるためです。 ステップ これを解決するには、次の手順に従います- return a XOR b 例 理解を深めるために、次の実装を見てみましょう- #include<bits/stdc++.h> using namespace std; int solve(int a, int b)
-
最小数のパンチを見つけるためのC++プログラムは、ターゲットに到達する方法を作るために必要です
H行とW列を含む行列があるとします。セルは「。」を保持します。また #。ドット。通過可能なスペースを示し、「#」はブロックを示します。アマルは彼の家から市場に行きます。彼の家は左上隅の独房にあり、市場は右下隅にあります。 Amalは、1つのセルを上、下、左、または右に通過可能なセルに移動できます。彼は町を離れることができない。彼もブロックされたセルに入ることができません。しかし、彼の体力により、1回のパンチで2×2のセルを選択した正方形の領域のすべてのブロックを破壊し、これらのセルを通過させることができます。アマルが市場に参入するために必要な最小数のパンチを見つける必要があります。 したがっ
-
合計が両方の配列に存在しない2つの配列から2つの数値を検索するC++プログラム
n個の要素を持つ2つの配列Aとm個の要素を持つBがあるとします。 a + bがAまたはBに属さないように、フォームAの要素とBの要素bを選択します。 したがって、入力がA =[3、2、2]のような場合; B =[1、5、7、7、9]の場合、3 + 1 =4はどの配列にも存在しないため、出力は[3、1]になります。 (他の回答も利用できます) ステップ これを解決するには、次の手順に従います- sort the array A sort the array B return last element of A and last element of B 例 理解を深めるために、次の実装を見
-
キーボードの可能な最小数を見つけるためのC++プログラムが盗まれた
n個の要素を持つ配列Aがあるとします。昨夜強盗が行われた電気店がありました。ストア内に存在するすべてのキーボードは、整数xから昇順で番号が付けられました。たとえば、x =4で、ストアに3つのキーボードがある場合、デバイスのインデックスは4、5、6になります。x=10で7つある場合、キーボードのインデックスは10、11、12、13になります。 14、15、16。強盗の後、n個のキーボードだけが残ります。配列Aにインデックスが格納されています。盗まれたキーボードの可能な最小数を見つける必要があります。 したがって、入力がA =[10、13、12、8]の場合、出力は2になります。これは、x =8の
-
グループの数を見つけるためのC++プログラムは、プログラマーのセットから形成できます。
n個の要素を持つ配列Aがあるとします。 A [i]は、i番目の学生のプログラミングスキルを表します。 Aのすべての要素は異なります。 -のように、チームに分割したいと思います。 | A [i] --A[j]|のような2人の生徒iとjはいない=1は同じチームに属しています チームの数は可能な限り最小限です。 したがって、入力がA =[2、3、4、99、100]の場合、グループは[2、3、4]と[99、100] であるため、出力は2になります。 ステップ これを解決するには、次の手順に従います- dem := 1 sort the array A for initialize
-
色付きのセルにドミノを正しい順序で配置できるかどうかを確認するC++プログラム
n、k1、k2、w、bの5つの数があるとします。 2 x nセルと最初の行の最初のk1セル、2番目の行の最初のk2セルが白で表示されているボードがあります。他のすべてのセルは黒です。 w個の白いドミノとb個の黒いドミノ(2 x 1サイズ)があります。両方のボードのセルが白で、他のドミノによって占有されていない場合は、ボードに白いドミノを配置できます。同様に、両方のセルが黒で、他のドミノによって占有されていない場合は、黒のドミノを配置できます。水平方向と垂直方向の両方に配置されている場合、すべてのw + bドミノをボードに配置できるかどうかを確認する必要がありますか? したがって、入力がn=5