noip模擬 小貓爬山《迭代深搜》

2022-05-07 10:45:06 字數 1136 閱讀 9155

freda和rainbow飼養了n只小貓,這天,小貓們要去爬山。經歷了千辛萬苦,小貓們終於爬上了山頂,但是疲倦的它們再也不想徒步走下山了(嗚咕》_

freda和rainbow只好花錢讓它們坐索道下山。索道上的纜車最大承重量為w,而n只小貓的重量分別是c1、c2……cn。當然,每輛纜車上的小貓的重量之和不能超過w。每租用一輛纜車,freda和rainbow就要付1美元,所以他們想知道,最少需要付多少美元才能把這n只小貓都運送下山?

第一行包含兩個用空格隔開的整數,n和w。

接下來n行每行乙個整數,其中第i+1行的整數表示第i只小貓的重量ci。

輸出乙個整數,最少需要多少美元,也就是最少需要多少輛纜車。

5 199612

1994

1229

2
對於100%的資料,1<=n<=18,1<=ci<=w<=10^8。

第一反應還是貪心吧,不過貪心貌似分數得不完的

後來就用迭代深搜做,雖然一開始沒有a,但是仔細檢查,發現沒a的原因就是讀入迴圈i從2開始沒從1開始,賦值把x寫成i

這也是夠6的

思想很簡單,列舉一下纜車數,纜車最多是18輛,至少要用總質量整除每輛載重輛,然後列舉的時候迭代深搜,找到最小滿足的輸出並跳出程式

好吧題很簡單我就直接上**了

1 #include2 #include3 #include4 #include5 #include6 #include7 #include8

#define maxn 20

9using

namespace

std;

1011

intf[maxn],a[maxn],ans,n,m,w,sum,flag;

1213

int comp(const

int&x,const

int&y)

1417

18void dfs(int

x)19

23for(int i=1;i<=ans;i++)

2432}33

return;34

}3536int

main()

3752

}53 }

view code

小貓爬山(DFS深搜)

翰翰和達達飼養了n只小貓,這天,小貓們要去爬山。經歷了千辛萬苦,小貓們終於爬上了山頂,但是疲倦的它們再也不想徒步走下山了 嗚咕 翰翰和達達只好花錢讓它們坐索道下山。索道上的纜車最大承重量為w,而n只小貓的重量分別是c1 c2 cn。當然,每輛纜車上的小貓的重量之和不能超過w。每租用一輛纜車,翰翰和達...

NOIP模擬 爬山

國家一級爬山運動員h10今天獲得了一張有著密密麻麻標記的地圖,在好奇心的驅使下,他又踏上了去爬山的路。對於爬山,h10有乙個原則,那就是不走回頭路,於是他把地圖上的所有邊都標記成了有向邊。他決定從點s出發,每到達乙個新的節點他就可以獲得一定的成就值。同時h10又是乙個很珍惜時間的運動員,他不希望這次...

小結 A IDA 迭代深搜

在dfs中,如果答案的深度很小但是卻很寬,而且bfs還不一定好做的情況下,我們就綜合bfs的優點,結合dfs的思想,進行有限制的dfs。在這裡a ida 和迭代深搜都是對dfs的優化,因此放到一塊小結。a 的概念主意在於估計函式,f n g n h n f n 是估計函式,g n 是n節點的當前代價...