51nod 1432 魔法學院(二分,貪心)

2021-08-18 22:26:09 字數 586 閱讀 9139

魔法學院放暑假了,wc和他的一幫魔友一起去弗爾夫斯基山脈玩。莫伊拉同學突然想划船到對岸找被削的mercy玩,這裡的每一艘船都是同一型號,能承受的重量都是一樣的,並且每艘船都可以坐乙個或者兩個人。wc他們共有n個人,現在我們知道他們每個人的質量,而且每個人體重也不超過船的承重。可惜經費有限,他們必須租盡可能少的船,請問他們最少要租幾艘船? 

input

第一行包含兩個正整數n 和m ,n<=10^4,m<=2*10^9,表示人的數量和船的最大承重。 接下來n行,每行乙個正整數,表示每個人的體重。體重不超過m。 

output

一行乙個整數表示最少需要的獨木舟數。

sample input

3 6123

sample output

#includeusing namespace std;

int main()

sort(v.begin(),v.end());//先把人按體重排序

l=0,r=n-1;

while(l<=r)

else

} cout<}

return 0;

}

51Nod1799 二分答案

lyk最近在研究二分答案類的問題。對於乙個有n個互不相同的數且從小到大的正整數數列a 其中最大值不超過n 若要找乙個在a中出現過的數字m,乙個正確的二分程式是這樣子的 l 1 r n mid l r 2 while l r 最終a r 一定等於m。但是這個和諧的程式被熊孩子打亂了。熊孩子在一開始就將...

51nod 1686 二分 尺取法

題意 給出陣列,區間的值為其重數 這個重數是指區間內的重數,不是整個陣列的重數 求解第k大小的區間值 重數 題解 思路 二分 尺取法 由上知 重數的範圍為 1 100000 重數值大的區間一定包括重數值小的區間 因此找到有大於等於k個區間值為mid就是答案了 注意 有可能第k大的值和第k 1個 或者...

51Nod 1279 扔盤子 二分

這道題如果暴力走 o n 2 肯定超時 然後看資料5 10 4 時間1s 呃 o nlogn 一下是能過的 然後 在想我為什麼要o n 2 走 肯定會有重複的啊 那怎麼省略掉這些呢 很簡單 如果我這個圓盤往下掉 第一層的寬度小於第二層的寬度 那麼很明顯 第二層的寬度是沒有用處的 那麼有用的是什麼呢 ...