-
数を0にするために必要な最小の操作数を見つけるためのC++プログラム
n桁の数値文字列Sがあるとします。 Sがデジタル時計を表し、文字列全体が0から10 ^ n-1までの整数を示しているとします。桁数が少ない場合は、先頭に0が表示されます。操作に従ってください- 時計の数字を1つ減らす、または 2桁を入れ替える 必要な操作の最小数で時計が0を表示するようにします。そのために必要な操作の数を数える必要があります。 したがって、入力がS =1000の場合、最初の1を最後の0と交換できるため、出力は2になります。したがって、文字列は 0001になり、1ずつ減らして0000になります。 ステップ これを解決するには、次の手順に従います- n :=
-
削除操作後に配列の縮小サイズを見つけるC++プログラム
n個の要素を持つ配列Aがあるとします。 n個の正の整数を持つパスワードがあると考えてください。配列に次の操作を適用します。操作は、互いに同じではない2つの隣接する要素を削除し、それらの合計をその場所に配置することです。したがって、この操作により、配列のサイズが1つ小さくなります。これらの操作を実行した後、配列の可能な限り短い長さを見つける必要があります。 したがって、入力がA =[2、1、3、1]の場合、出力は1になります。これは、(1、3)を選択すると、配列が[2、4、1]になるため、 (2、4)を使用して配列[6、1]を作成し、最後の2つを選択して[7]を取得します。 ステップ これを
-
数nを1にするために必要な最小操作数をカウントするC++プログラム
数nがあるとします。これらの操作のいずれかを任意の回数実行します- nが2で割り切れる場合は、nをn/2に置き換えます nが3で割り切れる場合は、nを2n/3に置き換えます nが5で割り切れる場合は、nを4n/5に置き換えます 1番にするために必要な最小移動数を数える必要があります。不可能な場合は、-1を返します。 したがって、入力がn =10の場合、出力は4になります。これは、n / 2を使用して5を取得し、4n / 5を使用して4を取得し、次にn / 2を使用して2を取得し、n/2を再度使用して取得するためです。 1. ステップ これを解決するには、次の手順に
-
チームメンバーのインデックスのシーケンスを見つけるためのC++プログラム
n個の要素と数kの配列Aがあるとします。クラスにはn人の生徒がいます。 i番目の学生の評価はA[i]です。すべてのチームメンバーの評価が明確になるように、k人の学生でチームを形成する必要があります。不可能な場合は「不可能」を返し、そうでない場合はインデックスのシーケンスを返します。 したがって、入力がA =[15、13、15、15、12]のような場合; k =3の場合、出力は[1、2、5]になります。 ステップ これを解決するには、次の手順に従います- Define two large arrays app and ans and fill them with cnt := 0 n :=
-
nを表すために必要な2進数の最小数をカウントするC++プログラム
数nがあるとします。数値が正の整数であり、10進数表記のすべての桁が0または1の場合、数値は2進化10進数です。たとえば、1001(1000と1)は2進化10進数ですが、1021はそうではありません。数値nから、nをいくつかの(必ずしも明確ではない)2進数の小数の合計として表す必要があります。次に、それに必要な2進数の最小数を計算します。 したがって、入力がn =121の場合、出力は2になります。これは、110+11または111+10として表すことができるためです。 ステップ これを解決するには、次の手順に従います- ans := -1 while n > 0, do:
-
2人のプレーヤーがサイコロを投げるゲームで勝つか引き分けをする方法を数えるC++プログラム
aとbの2つの数があるとします。アマルとビマルはゲームをしています。最初にそれぞれが1から6までの整数を書き込み、次にサイコロが投げられます。書かれた数字が紙に書かれた数字に近づいたプレーヤーは、そのラウンドに勝ちます。両方の差が同じであれば、それは引き分けです。 Amalが数字aを書き込み、Bimalがbを書き込む場合、Amalが勝つ可能性のある方法の数、可能な引き分けの数、およびBimalが勝つことができる方法の数を数える必要があります。 したがって、入力がa=2のような場合。 b =4の場合、出力は[2、1、3]になるため、Amalは2つの方法で勝つことができます。サイコロが3を示して
-
バイナリ文字列を購入するために必要なコインの最小数を見つけるためのC++プログラム
3つの数値c0、c1、hがあり、2進数の文字列Sがあるとします。Sの任意のビットを反転できます。変更ごとにhコインを支払う必要があります。いくつかの変更(おそらくゼロ)の後、文字列を購入したいと思います。文字列を購入するには、そのすべての文字を購入する必要があります。ビット0を購入するには、c0コインを支払う必要があり、ビット1を購入するには、c1コインを支払う必要があります。ストリングを購入するために必要なコインの最小数を見つける必要があります。 したがって、入力がc0=10のような場合。 c1 =100; h =1; S =01010の場合、出力は52になります。これは、最初にSの2番目
-
問題の数を数えるC++プログラムは、リストの左端または右端から解決できます
n個の要素を持つ配列Aがあり、別の数kがそこにあるとします。コンテストにn個の問題があると考えてください。アマルの問題解決スキルはkです。 Amalは常に、リストの最後から問題を解決します。そして、彼は難易度がkより大きい問題を解決することはできません。左右の問題の難易度がkより大きい場合、彼は停止します。彼が解決できる問題の数を数える必要があります。 A[i]はi番目の問題の難しさを表しています。 したがって、入力がA =[4、2、3、1、5、1、6、4]のような場合。 k =4の場合、出力は5になります。これは、最初に左端の問題を4で解決し、次に右端の問題を4で解決し、次に右端の問題を解
-
サブ配列が適切な配列であるサイズnの完全な配列を見つけるC++プログラム
数nがあるとします。配列Bは、その要素の合計がこの配列の長さで割り切れる場合に適しています。この配列Aの空でないサブ配列が適切で、Aの要素が1から100の範囲にある場合、n個の要素を持つ配列Aは完全であると言えます。数nから、完全な配列Aを見つける必要があります。 したがって、入力がn =4の場合、出力は[7、37、79、49]になり、他の回答も可能です。 ステップ これを解決するには、次の手順に従います- for initialize i := 0, when i < n, update (increase i by 1), do: print 1 例
-
3つの項目を循環的にチェックするC++プログラムは、次の項目が好きかどうか
n個の要素を持つ配列Aがあるとします。地球上にはn個の飛行機があり、それらには1からnまでの番号が付けられています。番号iの平面は平面A[i]が好きです。 A [i]!=i。 3つの平面p、q、rがあるかどうかを確認する必要があります。ここで、pはqが好きで、qはrが好きで、rはpが好きです。 したがって、入力がA =[2、4、5、1、3]の場合、トリプレットは[2、4、1]であるため、出力はTrueになります。 ステップ これを解決するには、次の手順に従います- n := size of A for initialize i := 0, when i < n, update (in
-
n個のピークを持つ順列を見つけるC++プログラム
A [i + 1]の場合、インデックスiは配列Aのピークであると言われます。これが不可能な場合は、-1を返します。 したがって、入力がn=5のような場合。 k =2の場合、出力は[2、4、1、5、3]になり、他の回答も可能です。 ステップ これを解決するには、次の手順に従います- if k > (n - 1) / 2, then: return -1 Define an array a of size: 101. for initialize i := 1, when i <= n, update (increase i by 1), do: &nbs
-
合計がsである要素の可能な最大中央値を見つけるためのC++プログラム
nとsの2つの数があるとします。要素の合計がsと同じになるように、n個の非負の要素の配列の可能な最大中央値を見つける必要があります。 したがって、入力がn=3のような場合。 s =5の場合、出力は2になります。これは、配列[1、2、2]の場合、合計が5で、中央値が2であるためです。 ステップ これを解決するには、次の手順に従います- m := floor of (n / 2) + 1 return floor of (s / m) 例 理解を深めるために、次の実装を見てみましょう- #include <bits/stdc++.h> using namespace std;
-
3番目の文字列から交換することで2つの文字列を等しくできることを確認するC++プログラム
同じ長さnの3つのストリングS、T、およびUがあるとします。 0からn-1の範囲のすべてのインデックスiについて、U[i]をS[i]またはT[i]のいずれかと交換する必要があります。したがって、合計でn回のスワッピング操作を実行しました。このようなn回の操作の後、文字列SをTとまったく同じにすることができるかどうかを確認する必要があります。 したがって、入力がS=abcのような場合。 T =bca; U =bcaの場合、出力はTrueになります。これは、すべてのiについて、U[i]をS[i]と交換すると、「bca」になり、Tはすでに「bca」になっているためです。 ステップ これを解決する
-
三角形を形成するためにスティックの長さを増やすために必要な分数をカウントするC++プログラム
a、b、cの3つの数字があるとします。長さがa、b、cの3本のスティックがあります。 1分で任意のスティックを1本選び、長さを1cm長くすることはできますが、スティックを壊すことはできません。それらの長さを増やすために必要な最小分数を数える必要があり、それらと三角形を形成することができます。 cを作成できるためです。したがって、1分で十分です。 ステップ これを解決するには、次の手順に従います- Define an array A = { a, b, c } sort the array A return maximum of (A[2] - A[1] - A[0] + 1) and 0 例
-
遅延タイミングの後にタイピングゲームの勝者を見つけるためのC++プログラム
5つの数s、v1、v2、t1、t2があるとします。 AmalとBimalはタイピングゲームをプレイしており、オンラインでゲームをプレイしています。このゲームでは、長さがsの文字列を入力します。 Amalはv1ミリ秒で1文字を入力し、Bimalはv2ミリ秒で1文字を入力します。 Amalのネットワーク遅延はt1ミリ秒で、Bimalのネットワーク遅延はt2ミリ秒です。 接続遅延がtミリ秒の場合、参加者の競争は次のように通過します- ゲーム開始からtミリ秒後、参加者は入力するテキストを受け取ります。 その直後、彼はそれをタイプし始めます。 彼がすべてのテキストの入力を終了してから
-
合計がkであるサブセットがないいくつかの数値を選択するC++プログラム
nとkの2つの数があるとします。合計がkに等しいサブセットがないように、1からnまでの個別の要素の最大数を選択する必要があります。見つかった場合は、選択した番号を返します。 したがって、入力がn=5のような場合。 k =3の場合、出力は[4、5、2]になります。 ステップ これを解決するには、次の手順に従います- for initialize i := (k + 1) / 2, when i <= k - 1, update (increase i by 1), do: print i for initialize i := k + 1, when i &l
-
合計kを取得するために必要な最小コインの数をカウントするC++プログラム
nとkの2つの数があるとします。 1からnの値に相当するコインの数は無制限です。合計がkであるいくつかの値を取りたいと思います。複数の同じ価値のコインを選択して、合計kを取得できます。合計kを得るのに必要なコインの最小数を数える必要があります。 したがって、入力がn=6のような場合。 k =16の場合、(2 * 6)+ 4であるため、出力は3になります。 ステップ これを解決するには、次の手順に従います- c := (n + k - 1) / n return c 例 理解を深めるために、次の実装を見てみましょう- #include<bits/stdc++.h> using
-
新しい怒っている学生がいなくなってから最低何分かを数えるC++プログラム
長さnの文字列Sがあり、「A」または「P」の2種類の文字しかないとします。 n人の生徒が並んでいます。S[i]=Aの場合、i番目の生徒は怒っています。Pの場合、S[i]は忍耐強いと言います。インデックスiで怒っている学生は、毎分インデックスi + 1で患者の学生を攻撃します。最後の学生は、怒っていても、誰も攻撃できません。忍耐強い学生を殴った後、その学生も怒ります。その後、新入生が怒らないようにするための最小時間を見つける必要があります。 したがって、入力がS =PPAPPの場合、出力は2になります。これは、最初の1分後に文字列が「PPAAP」になり、2分後に「PPAAA」になり、新しい学生
-
ボール除去ゲームの勝者を見つけるためのC++プログラム
4つの数n1、n2、k1、およびk2があるとします。 2つのボックスがあり、最初のボックスにはn1個のボールがあり、2番目のボックスにはn2個のボールがあるとします。アマルとビマルがゲームをプレイしています。 1回の移動で1からk1のボールを取り、それらを捨てることができます。同様に、2回目の移動で1からk2のボールを取ります。アマルはゲームを開始し、彼らは交互にプレイします。自分の動きをプレイできない人はゲームに負けます。誰が勝者になるかを見つけなければなりません。 したがって、入力がn1=2のような場合。 n2 =2; k1 =1; k2 =2の場合、各ボックスに2つのボールがあるため、
-
適切な文字列を取得するために削除する文字数をカウントするC++プログラム
文字列Sがあるとします。Sには、Sに「x」と「a」の2種類の文字が含まれています。良い文字列になるように、Sのいくつかの文字を削除した後に残っている最長の文字列を数える必要があります。文字列は、長さの半分以上が文字「a」で埋められている場合に適しています。 したがって、入力がS =xaxxxxaの場合、出力は3になります。これは、4xを削除すると、文字列が xaaになり、長さが3の適切な文字列になるためです。 ステップ これを解決するには、次の手順に従います- x := 2 * count the number of 'a' in S n := size of S retu