本次貪心題的練習題有: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,不是進行各種可選支路的試探,而是當下就可用某種策略確定選擇,無需考慮未來 未來情況的演變也影響不了當下的選擇 只要一直這麼選下去,就能得出最終的解,每一步都是當下 子問題 的最優解,那麼最終得出的結果就是問題的最優解,這叫做最優子結構。更書面的說法 如果問題的乙個最優解中包含...
貪心演算法小結
貪心演算法,更確切的說是一種解決題目的思想,簡單來說是對於問題的特殊解,它可以通過某種特殊的規則,不斷地選取最優的策略。比如說,最簡單的貪心問題 使用最少的硬幣數量來解決付賬的問題 恰好完成數額,不需要找零 區間的排程問題 給你多個區間,可能會有交叉現象,你需要找所給你的實現當中找出不交叉的區間數量...