poj 貪心小結(一)

2021-12-29 20:36:21 字數 924 閱讀 8869

本次貪心題的練習題有:2325,3258,3122,2393,1065,1323,1328,1700

1700:經典的過河問題。兩種貪心策略,一種是最快的+最慢的,最快的回來,再最快的+次慢的,最快的回來,第二種是最快的+次快的,次快的回來,再最慢+次慢過河,在最快的回來。兩中策略的結果都是最慢的和次慢的過了河。然後就可以dp,注意n=1,2,3特判。

2325:貪心+高精度

3258:二分

3122:二分

2393:對於第i周的生產,兩種情況,一是用本週的單價c[i],二是採用前面某周的單價c[j]+(i-j)*s。可以用二叉堆優化。

1065:排序,求最長不下降子串行。(dilworth定理)

1323:水,很簡單的貪心策略,但要考慮周全,特別是不要忘了n個人都出牌,不能夠只考慮自己和其中乙個對手。

1328:對每個島嶼以d為圓心畫圓,與x軸求交點,得到了若干線段,然後就是熟悉的貪心問題了。但要注意,被包含的線段一定不能忽略。

給出2393的**,因為二叉堆的維護比較有技巧性。而且使用了priorty_queue和greater函式。

[cpp] 

#include  

#include  

#include  

#include  

#include  

#include  

using namespace std; 

const int n=10005; 

priority_queue,greater > h; 

long long ans; 

int c[n],y[n]; 

int n,s,tmp; 

int main() www.2cto.com

cout << ans << endl; 

} 作者:ascii991

貪心演算法小結

貪心,即要最好的。通過找每一步的最優解來找整體的最優解。該演算法要求該題能分成幾步進行,且每一步可運用相同的方法並有最優解。能夠將乙個問題劃分成有限個子問題,通過尋找子問題的最優解來找全域性的最優解。特性 1。候選集合a 有乙個以最優方式來解決的問題,為了構造問題的解決方案,有乙個候選物件的集合,將...

貪心演算法小結

最優子結構 對比dfs,不是進行各種可選支路的試探,而是當下就可用某種策略確定選擇,無需考慮未來 未來情況的演變也影響不了當下的選擇 只要一直這麼選下去,就能得出最終的解,每一步都是當下 子問題 的最優解,那麼最終得出的結果就是問題的最優解,這叫做最優子結構。更書面的說法 如果問題的乙個最優解中包含...

貪心演算法小結

貪心演算法,更確切的說是一種解決題目的思想,簡單來說是對於問題的特殊解,它可以通過某種特殊的規則,不斷地選取最優的策略。比如說,最簡單的貪心問題 使用最少的硬幣數量來解決付賬的問題 恰好完成數額,不需要找零 區間的排程問題 給你多個區間,可能會有交叉現象,你需要找所給你的實現當中找出不交叉的區間數量...