笔试 | 大疆2021秋招笔试题及题解
DJI
文章首發于公眾號”面鯨“,更多思路以及解法歡迎關注公眾號!后臺回復“聯系”可添加小編微信加入面試筆試刷題交流群哦~
第一題
假設小杰有N個bug沒有修,他每喝一杯咖啡(喝咖啡時間忽略不計),就給自己一個小時內的debug效率提升到原來的A倍,一小時內重復喝沒用,最多只能喝X杯,喝太多了晚上會睡不著,并且為了可持續發展,每天最多只能工作X個小時,而在沒喝咖啡的情況下解決每個bug所需要的時間為t1,t2,...,tNt_1,t_2,...,t_Nt1?,t2?,...,tN?分鐘。
現在是早上8點,小杰馬上要開始一天的工作了,他計劃按從1-N的順序修復他頭上的這些bug,你能幫他計算出他今天能在8小時內修完所有的bug么?如果能,最少需要多少時間?
輸入描述
第一行三個整數N A X (1<=N<=100, 1<=A<=8, 1<=X<=8)
輸出描述
輸出一個數字T,如果不能解完所有的bug,則輸出0,否則輸出最少的分鐘數。(T為正整數,如果不滿一分鐘則按一分鐘計算,一旦超過8小時則認為不能解決,所以T最大為480)。
樣例輸入
- 8 2 8
- 60
- 60
- 60
- 60
- 60
- 60
- 60
- 60
樣例輸出
- 240
樣例輸入
- 4 3 3
- 333
- 77
- 100
- 13
樣例輸出
- 175
分析
- 要最快地解決問題,當然是碼足馬力喝完X杯咖啡。
- 喝完X杯咖啡之后,最多能完成的工作量是之前A?X?60A*X*60A?X?60分鐘的工作量。
- 那么就可以分為原工作量大于A?X?60A*X*60A?X?60以及不大于A?X?60A*X*60A?X?60兩種。如果原來的工作量大于A?X?60A*X*60A?X?60,那么前X小時可以干X?60X*60X?60的工作量,剩下的時間只能慢慢按照原來的速度干活兒;如果原來的工作量小于等于A?X?60A*X*60A?X?60,那么最后所需要的時間就是原來所需時間的1/A1/A1/A。
第二題
有一排零食格子,每一個里面都有零食,并標有對應的價格。小A每次只能從里面拿走總價格小于V的零食。對于每個零食,小A都有一個內心的滿意度,小A希望每次都能吃上讓自己最滿意的零食。
假設零食柜里每個格子只放一種零食,每種零食的數量是有限的,買完就沒有了,零食只能按照整數倍購買,不能只買半件,求在有限價格內能買到的零食的最高滿意度是多少?
輸入描述
- 第一行兩個整數N和T,N表示零食的種類數,T表示小A擁有的錢。(1<=N<=100, 1<=T<=10000)
- 然后輸入N行,每行三個正整數用空格分開,按順序表示零食的價格v,滿意度l和零食的數量c。(1<=v<=100, 1<=l<=100, 1<=c<=100)
輸出描述
- 對于每一組測試數據,輸出一個正整數,如果無法購買任何一個零食則輸出0,否則輸出最大的滿意度。
樣例輸入
- 2 10
- 1 1 1
- 1 1 1
樣例輸出
- 2
樣例輸入
- 3 100
- 26 100 4
- 5 1 4
- 5 2 2
樣例輸出
- 306
分析
- 當所有的c都等于1的時候,就是個0-1背包問題。
- 而這題是一個多重背的模版題。基本的思路是可以將每一件物品分成若干件物品,使得原問題中第i種物品可取的每種策略(取0,1,...,c0,1,...,c0,1,...,c件)可以等同于取若干件代換之后的物品,進而轉換為0-1背包問題。具體的解法可以在公眾號后臺回復“背包”獲得完整版的《背包九講》pdf。
歡迎掃碼關注我們,在這里等你~
總結
以上是生活随笔為你收集整理的笔试 | 大疆2021秋招笔试题及题解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CentOS6 安装gcc编译器,解决【
- 下一篇: 07-----关于ffmpeg Inva