【每日一题】7月17日题目精讲—BOWL 碗的叠放
生活随笔
收集整理的這篇文章主要介紹了
【每日一题】7月17日题目精讲—BOWL 碗的叠放
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【每日一題】7月17日題目精講—BOWL 碗的疊放
時間限制:C/C++ 1秒,其他語言2秒 空間限制:C/C++ 262144K,其他語言524288K 64bit IO Format: %lld題目描述
小H有n個碗需要放進櫥柜,她希望將他們疊起來放置。你知道每個碗都是規則的圓柱體,并且都是上寬下窄,你已經測量出了每個碗的兩個半徑及高,請你幫小H找出一種疊放順序,使得疊放出來的碗堆的高度盡量小,比如:
100%數據滿足n < = 9。所有輸入的數絕對值不超過1000。
輸入描述:
第一行一個整數n,表示碗的數目。 以下n行,每行三個整數h,r1,r2。分別表示碗高及兩個半徑。其中r1<r2
輸出描述:
僅一個數,表示最小的高度。答案四舍五入取整。
示例1
輸入
復制
輸出
復制
題解:
n<9,所以直接枚舉就行,挨個試一遍取最優解
碗的疊放分幾種情況:
當前的總高度應該是上底相對于上個碗的高度+上個碗底的高度
一個一個的放,然后看看哪一種情況下高度最高,暴力就完事了
思路很簡單,但實現有點麻煩
斜率:2*h/(x1-x2)
代碼:
我調了一陣子都沒a。。。放棄了
直接借用大佬代碼,參考處理的細節
代碼選自
總結
以上是生活随笔為你收集整理的【每日一题】7月17日题目精讲—BOWL 碗的叠放的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牛客算法周周练15
- 下一篇: 【每日一题】7月20日题目精讲—着色方案