騰訊筆試 冰淇淋店

2021-09-26 08:54:04 字數 1326 閱讀 8916

題目描述:

做冰淇淋需要 n 種原料,現每種原料有存貨 w = [w1, w2, …] 個,對應的** v = [v1, v2, …]

存貨用完就需要去商店買,現共有錢 m 元。

問,最多能做多少冰淇淋。(1<=n,vi<=100,1<=m,wi<=10^12)

示例輸入:

3 10

2 5 3

2 1 3

輸出:4

這是當時寫的**,思路就是選存貨最少的做成冰淇淋,存貨全部減去這個數,再買材料,思路正確,但是複雜度太高,主要是每次找最少太費時間了,應該直接先排序的,或者根本不用找最小,就每次做乙個。這道題的複雜度貌似必須是o(n)。

import sys

if __name__ == "__main__":

n, m = [int(x) for x in sys.stdin.readline().strip().split()]

exist = [int(x) for x in sys.stdin.readline().strip().split()]

money = [int(x) for x in sys.stdin.readline().strip().split()]

total_money = sum(money)

ans = 0

min_num = min(exist)

ans += min_num

exist_buf = [i - min_num for i in exist]

exist = exist_buf

while m > 0:

min_num = max(1, m // total_money)

ans += min_num

need = [i - min_num for i in exist]

need_money = 0

for i in range(n):

exist_buf[i] = max(exist[i] - min_num, 0)

if need[i] < 0:

need_money += abs(need[i]) * money[i]

exist = exist_buf

m -= need_money

if m < 0:

ans -= 1

print(ans)

騰訊筆試記

這是乙個千載難逢的機會,這是乙個程式愛好者之間的擂台,這是一次千里挑一的冒險,這是乙個走向地獄與天堂的路口,這是一場充滿著變數的遊戲,歸根結底,這是一次筆試 筆試嘛,考的是什麼?是知識,是細心,是心理素質。從今天凌晨2點27分收到筆試的簡訊通知,心裡著實開始緊張了,我的心裡素質一向不太發達,尤其是面...

騰訊筆試總結

1 二叉樹遍歷例如 先序 中序 後序 2元件可靠性 3記憶體分配 最佳,最差,迴圈等 4命令 chown chmod 5那種方案是安全的。作業系統。程序,可用資源數,最大分配,已經分配 6測試用例 7最短路徑 8位址轉換 9sizeof 10雜湊函式,雜湊函式,衝突探測 11risc 12有限自動機...

騰訊筆試題

一.單選題 每題4 分,15題,共60分 1.考慮函式原型void hello int a,int b 7,char pszc 下面的函式呼叫鐘,屬於不合法呼叫的是 a hello 5 b.hello 5,8 c.hello 6,d.hello 0,0,2.下面有關過載函式的說法中正確的是 a.過載...