演算法設計與分析9 貪心演算法

2021-10-05 18:22:49 字數 655 閱讀 8550

木棒加工問題

現有n根木棒,已知它們的長度和重量。要用一部木工機一根一根地加工這些木棒。該機器在加工過程中需要一定的準備時間,是用於清洗機器,調整工具和模版的。

木工機需要的準備時間如下:(1)第一根木棒需要1min的準備時間;(2)在加工了一根長為l ,重為w的木棒之後,接著加工一根長為l ' (l ≤ l' ),重為 w' ( w≤w')的木棒是不需要任何準備時間的,否則需要一分鐘的準備時間。

給定n根木棒,找到最少的準備時間。

例如現在有長和重分別為(4,9),(5,2),(2,1),(3,5)和(1,4)的五根木棒,那麼所需準備時間最少為2min,順序為(1,4),(3,5),(4,9),(2,1),(5,2)。

#include

#define maxn 5001

using namespace std;

struct stick    //採用結構體表示木棒資訊

;stick data[maxn];        //存放所有木棒

int cmp(stick a, stick b)

int lis(int n, stick a)

int main()

}

演算法設計與分析 貪心演算法

time limit 1000 ms memory limit 65536 kib problem description 一輛汽車加滿油後可行駛n公里。旅途中有若干個加油站。設計乙個有效演算法,指出應在哪些加油站停靠加油,使沿途加油次數最少。並證明演算法能產生乙個最優解。對於給定的n和k個加油站位...

演算法設計與分析 貪心演算法

分解 將原問題求解過程劃分為連續的若干個決策階段 決策 在每乙個階段依據貪心策略進行貪心決策,得到區域性的最優解,並縮小待求解問題的規模 合併 將各個階段的區域性解合併為原問題的乙個全域性最優解 greedy c c是問題的輸入集合即候選集合 初始解集合為空集 while not solution ...

演算法設計與分析 貪心演算法

所謂貪心演算法是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的僅是在某種意義上的區域性最優解。貪心演算法不是對所有問題都能得到整體最優解,但對範圍相當廣泛的許多問題他能產生整體最優解或者是整體最優解的近似解。貪心演算法的基本思路如下 1.建立數學模型...