2023年1月ACM留校培訓 二分專題

2021-07-25 21:35:22 字數 1351 閱讀 2614

二分法是程式設計中非常常用的一種演算法,比賽中經常會使用到,在我參加的這些比賽裡,幾乎每一場比賽都會有多多少少涉及到二分法的題目。二分法不僅僅是用來比較乙個數在乙個數列裡所處的大小位置,有時候還有很多更巧妙的用法。

需要注意的是,要使用二分法解決的問題,答案一定是隨著已知引數單調遞增或者遞減的,就是說你要尋找的那個解,他的解空間一定是有序的。

比賽中的題目一般都是直接二分搜尋答案,將搜尋的那個值放到乙個函式中進行判定,根據是否滿足條件,調整要搜尋的解空間,判定函式中可能會用到貪心思想。

例題1:大白書《挑戰程式設計競賽》p140

假定乙個解並判斷是否可行

poj 1064

二分cable master

例題2:大白書《挑戰程式設計競賽》p142

最大化最小值,假定解後進行貪心,看是否可行

poj 2456

二分aggressive cows

例題3:hdu 4430 數學+二分,這種題不常見,主要練習upper_bound,lower_bound

直接在一堆數里搜答案,可以用upper_bound,lower_bound

hdu4430 yukari'sbirthday 2012 acm_icpc asia changchun regional contest problem k

intb=*lower_bound(a,a+9,21);

b=lower_bound指標指向的位置的值。

lower指向第乙個大於等於要求的那個點,upper指向第乙個大於要求的那個點

upper_bound(a,a+9,5)-lower_bound(a,a+9,5)可用來求有序陣列中某值的個數

在set,map裡:

a=s.upper_bound(3)//a是乙個指標,s是乙個set或者map

習題1:

poj 3258

二分river hopscotch

習題2:

jnuoj 1151 方杯子,這個題目是我出的,是個公式題,修改一下資料提高一下需要的精度,就需要使用二分了,這個題可以不用做,看一下了解思路就行。

習題集:

見大白書p283

poj 3273

poj 3104

poj 3045

poj 2976

poj 3111

poj 3579

poj 3685

poj 2010

poj 3662

poj 1759

poj 3484

2023年1月總結 二

1 對於商品列表 浮動 應該設定寬高。因為切圖時無法保證一定符合大小 2 學習雅虎14條 3 在寫js jquery時,如果有引用層疊,應該用單引號和雙引號來區別 4 書寫html標記時,用小寫 給所有屬性值加引號。5 屬性塊之間用空格分開 6 所有屬性都需要值,關閉所有標籤,包括空標籤。7 不要在...

2023年1月問題記錄與總結

1.中斷沒有觸發的可能原因 1.從cpu這一端看,本身的中斷開關沒有開啟 2.cpu這一級中斷被其他原因關閉,例如 arm中 cpsr的i 和f位都被遮蔽了 3.從外設的角度,檢查外設的中斷有沒有發出來,發出來了會不會還沒有到達cpu之前就被遮蔽了,這個往往可以檢視 mask 是否設定正確 4.軟體...

2023年1月歷史文章彙總

2017 02 01 機器學習研究會 機器學習研究會 2017年1月1日 推薦 pandas資料處置速查表 學習 決策樹在商品購買能力 案例中的演算法實現 學習 變 貝葉斯 學習 intel 收官開源之作 bigdl 構建在 apache spark 之上的分布式深度學習庫 2017年1月2日 推薦...