顔の質問オファー安全性を証明するために、14-カットロープ - 貪欲アルゴリズム

/ * 
タイトル:
	ロープセグメントの切断長さの文字列N、考えるとは、Mは(n> 1、M> 1) 
	ロープセグメントの積の最大値を選択します。
。* / 
/ * 
思考:
	貪欲アルゴリズム。
	ロープの長さは、ロープ3のカット長限り、5よりも大きい場合、4ロープの長さの残りの部分、ロープは、長さ2のロープ2を切断するとき。
* / 
/ * 
実証:
	とき、N> = 5、2(N -2)> N、3(N-3)> N、 即ち、場合nはそれを置くために、5よりも大きい2または3の長さをカットロープ、3(N-3)> 2 (N-2)、 ロープ3の長さを切断することが可能です。
	n = 4の場合、2×2の最大カット。
* / 
の#include <iostreamの> 
する#include <string.hの> 
する#include <アルゴリズム> 
の#include <math.h>の
使用名前空間STD; 
INT cutRope(INT数){ 
    IF(数<= 1){ 
        スロー(「無効なパラメータ「); 
    } 
    。(番号番号== == 2 || 3)IF { 
        戻り数1。 
    }
    数timesOf3 = INT / 3; 
	
	残りの長さが4である場合、2×2切断する// 
    IF(数- 3 * == timesOf3 1。。){ 
        timesOf3 - ; 
    } 
    int型timesOf2 =(数- timesOf3 * 3)/ 2 ; 
    リターン(INT)(POW(3、timesOf3))*(INT)(POW(2、timesOf2)); 
} 


int型のmain(){ 
    COUT << cutRope << ENDL(8); 
}

   

おすすめ

転載: www.cnblogs.com/buaaZhhx/p/11845649.html