簡單題意:給定若干木棒,有長度和寬度,第一根木棒加工需要一分鐘,如果第二根木棒的長度和寬度都大於或者等於第一根木棒,則不需要消耗另外的時間,以此類推;
解題思路:
首先對木棒進行排序,按照長度從小到大排序,如果長度相同,則按照重量排序,從第一根開始,以此與下一根木棒的重量比較,定義變數min=0;如果符合條件,min++;由於存在重複比較的問題,在陣列裡定義兩個判斷變數來判斷該木棒是否已經進行比較過。最後比較完成,n-min=所需時間;
ac**:
#include #includestruct
mma[
5001
];int
cmp( mm a,mm b)
using
namespace
std;
intmain()
int m=0
; sort(a,a+n,cmp);
for(i=0;i)
if(a[i].w<=a[j].w&&a[j].x!=1
)
min++;
i=j;
a[j].v=1;j=i+1
;
continue
; }
}for( y=0;y)
a[y].x=a[y].v;
}cout
min=0
; }
return0;
}
經典貪心演算法 貪心演算法概述
貪心演算法具有最優子問題結構,它的特點是 短視 每次選擇對當前局面最有利的決策,來一步步獲得最優解。我個人認為,貪心不是乙個具體的方法,而是一類方法,貪心演算法的關鍵不在於想到,而在於正確性的證明。要證明乙個貪心演算法是正確的,需要證明我們可以把乙個最優解逐步轉化為我們用貪心演算法所得到的解,而解不...
演算法 貪心演算法
把乙個複雜問題分解為一系列較為簡單的區域性最優選擇,每乙個選擇都是對當前解的乙個擴充套件,知道獲得問題的完整解。在解決問題的策略上目光短淺,只根據當前已有的資訊做出選擇,而且一旦做出了選擇,不管將來有什麼結果這個選擇都不會改變。換言之,貪心法並不是從整體最優考慮,它所做出的選擇只是在某種意義上的區域...
演算法 貪心演算法
集合覆蓋問題 旅行商問題等都屬於np完全問題,在數學領域上並沒有快速得到最優解的方案,非常適合用貪婪演算法。判斷方法 1.元素較少時,一般執行速度很快,但隨著元素數量增多,速度會變得非常慢 2.涉及到需要計算比較 所有的組合 情況的通常是np完全問題 3.無法分割成小問題,必須考慮各種可能的情況。這...