パックサイズをチェックするC++コードは、指定された範囲から決定できます
2つの数lとrがあるとします。お店があり、「a」個の食品が入った食品容器を割引価格で販売したいのですが、x個の食品を購入したいというお客様もいらっしゃいます。欲張り戦略に従っている顧客-
-
彼は(x / a)パックのフロアを割引価格で購入します
-
次に、残りの(x mod a)食品を1つずつ購入したいと考えています。
しかし、顧客は貪欲であるため、(x mod a)食品を1つずつ購入したい場合、(x mod a)≥a/ 2になると、食品のパック全体を購入することにします。顧客はlからrの範囲(両方を含む)の食品をいくつでも購入できます。各顧客が最初に望んでいたよりも多くの缶を購入するようなサイズのパックを選択できるかどうかを確認する必要がありますか?
したがって、入力がl=3のような場合。 r =4の場合、出力はTrueになります。これは、a =5の場合、3つまたは4つの缶を購入したい場合は、パックを購入できるためです。
ステップ
これを解決するには、次の手順に従います-
if r / 2 >= l, then: return false Otherwise return true
例
理解を深めるために、次の実装を見てみましょう-
#include <bits/stdc++.h> using namespace std; bool solve(int l, int r){ if (r / 2 >= l) return false; else return true; } int main(){ int l = 3; int r = 4; cout << solve(l, r) << endl; }
入力
3,4
出力
1
-
指定された文字列がC++の合計文字列であるかどうかを確認します
ここでは、文字列が合計文字列であるかどうかを確認する方法を説明します。右端の部分文字列がその前の2つの部分文字列の合計として記述できる場合、その文字列は合計文字列と呼ばれ、その前の部分文字列についても同じことが再帰的に当てはまります。 12243660のような文字列が12+24 =36のような合計文字列であり、36が文字列の12と24の後に存在し、再び24 + 36 =60であるとすると、これも文字列に存在します。 文字列Sは、この規則に従っている場合、合計文字列と呼ぶことができます- 𝑠𝑢𝑏𝑠𝑡𝑟𝑖𝑛𝑔(𝑖、𝑥)+𝑠𝑢𝑏𝑠𝑡𝑟𝑖𝑛𝑔(𝑥+ 1、�
-
サイズnの指定された配列がnレベルのBSTを表すことができるかどうかをC++で確認してください
配列Aがあり、配列がnレベルのBSTを表すことができるかどうかを確認する必要があります。レベルがであるため、次のようにツリーを構築できます。数値をkとすると、kより大きい値は右側に移動し、kより小さい値は左側に移動します。 {50、20、9、25、10}と{50、30、20、25、10}の2つのリストがあるとします。 最初のものは無効ですが、2番目のものは有効です。 これを確認するには、BSTを作成して高さを確認するか、配列ベースのアプローチを使用します。アレイベースのアプローチは以下のようなものです- 2つの変数max=infinityを使用して、左側のサブツリーの最大制限をマー