最大の製品カット| C++のDP-36
このチュートリアルでは、最大の製品切断を見つけるためのプログラムについて説明します。 DP-36。
このために、Nメートルのロープが提供されます。私たちの仕事は、ロープをさまざまな整数の長さに切断して、それらの長さの積が最大になるようにすることです
例
#include <iostream>
using namespace std;
//finding maximum of two, three integers
int max(int a, int b) {
return (a > b)? a : b;
}
int max(int a, int b, int c) {
return max(a, max(b, c));
}
//returning maximum product
int maxProd(int n) {
if (n == 0 || n == 1) return 0;
int max_val = 0;
for (int i = 1; i < n; i++)
max_val = max(max_val, i*(n-i), maxProd(n-i)*i);
return max_val;
}
int main() {
cout << "Maximum Product is " << maxProd(10);
return 0;
} 出力
Maximum Product is 36
-
C++のツリー内の2つの交差しないパスの最大積
この問題では、n個のノードを持つ無向接続ツリーTが与えられます。私たちのタスクは、C++のツリー内の2つの交差しないパスの最大積を見つけるプログラムを作成することです。 問題の説明 −ツリー内の交差しない2つのパスの最大積を見つける。興味のないすべてのパスを見つけてから、それらの長さの積を見つけます。 問題を理解するために例を見てみましょう 入力 グラフ- 出力 8 説明 考慮される交差しないパスはC-A-B およびF-E-D-G-H 。 長さは2と4です。Product=8。 ソリューションアプローチ この問題の解決策は、DFSを使用してツリーをトラバースすることです。そ
-
C++の積に等しいLCMの最大長サブアレイ
配列Aがあるとします。サブ配列の最大長を見つける必要があります。そのLCMは、そのサブ配列の要素の積と同じです。そのようなサブ配列が見つからない場合は、-1を返します。配列が{6、10、21}で、長さが2であるとすると、サブ配列{10、21}があり、そのLCMは210で、積も210です。 アプローチは簡単です。 2以上の長さの可能なすべてのサブ配列をチェックする必要があります。サブ配列が条件を満たす場合は、回答を最大の回答とサブ配列の長さとして更新します。 例 #include <iostream> using namespace std; int gcd(int a, int