日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[学习笔记]贪心

發布時間:2025/3/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [学习笔记]贪心 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

貪心是一個考察智商的算法。

也是一個考察猜結論能力,證明能力的算法。

和DP類似,貪心也有一個前提,問題必須有最優子結構。

?

一、經典模型:

①硬幣問題:找零錢——貪心

②部分背包:性價比排序

③區間問題
給定 n 個區間,每個區間左右端點分別為 li, ri,現在要求選出盡量多的區間使得它們兩兩不相交 (不包括端點),問最多能選出幾個區間:

按照右端點從小到大排序決策。選擇右端點最小的,剩余的空間最大。決策具有包容性。

④順序問題
給定 n 個數 ai,再給出 n 個數 bi,現在要求你重新排列 b 的順序,
使得$\sum_{i=1}^n ai\times bi$最小

排序不等式,交換法即可證明。

?

?

二、貪心的一般證明方法,也可以看做是入手的方法:

1.微擾法(臨項交換)

一般用于對于若干個數排序,然后找最優解等等。

例題:

之前模型的④順序問題。排序不等式的證明。

經典地,NOIP2012國王游戲。

還有疊羅漢的問題:Guard Mark

都是交換即可證明排序的條件。

還有分兩段甚至更多段交換的:BZOJ 3709&&AGC 018 C——多段排序的微擾法

?

還有從國王游戲衍生的:皇后游戲:luoguP2123 皇后游戲——微擾法的應用與排序傳遞性的證明

皇后游戲其實是微擾法的究極題目了。

它告訴我們,微擾法的另一個適用條件是排序的大小關系具有傳遞性。

?

2.范圍縮放

3.決策包容性

模型的③區間問題 就是很好的例子。

4.反證法

5.數學歸納法

?

三、還有一些貪心的常用方法:

1.高位貪心:從高位到低位確定,本質是大小比較的本質:先比較高位,再比較低位。

①字典序問題。

②異或問題:給定 n 個數,求選兩個數進行異或操作所能得到的最大值。0/1trie上高位貪心即可。

還有一個經典地高位貪心+dp驗證題目:CF981D Bookshelves

2.反悔貪心

(名字是我自己起的)

貪心是不能反悔的。因為它就是選擇當前的最優解。

但是如果當前最優解不是全局最優解怎么辦?

我們可以設計一種反悔的方法,并且和貪心的手法結合。

使得貪心隨便選擇,都可以達到正解。

反悔自動機與反悔堆——有關貪心的反悔操作

3.樹上貪心:

這種貪心往往和子樹、兒子的信息聯系在一起,有的甚至和樹形dp有些類似。但是本質其實是貪心。

例題:[POI2008]MAF-Mafia

2067: [Poi2004]SZN——樹上貪心+二分

?

?

其他的貪心:

1.[NOI2017]蔬菜——時光倒流+貪心

轉載于:https://www.cnblogs.com/Miracevin/p/9795107.html

總結

以上是生活随笔為你收集整理的[学习笔记]贪心的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。