摔手機 藍橋 Python

2021-10-09 23:41:03 字數 2674 閱讀 5572

dp =[[

0,0,

0,0]

for _ in

range

(1001)]

# 只有乙個手機時測試n樓層時需要的測試次數

for i in

range(1

,1001):

dp[i][1

]= i

# 無論多少個手機 第一層所需要的測試次數永遠是1

for i in

range

(len

(dp[1]

)): dp[1]

[i]=

1# print(dp[1][1], dp[1][2], dp[1][3])

# print(dp)

# ind 還需要測試的樓層數量 cnt: 手機數量

for cnt in

range(2

,4):

# 第二部手機 第三部手機

# 只有乙個手機時要測試ind個樓層所需要的 次數 -> 兩個手機時要測試ind個樓層所需要的 次數

# 兩 個手機時要測試ind個樓層所需要的 次數 -> 三 個手機時要測試ind個樓層所需要的 次數

for ind in

range(2

,1001):

# 從第一層到第1000層

# 第ind層cnt個手機需要的測試次數 = 第ind - 1層cnt個手機需要的測試次數 + 1

dp[ind]

[cnt]

= dp[ind -1]

[cnt]+1

for k in

range(2

, ind +1)

:# 尋找第k層 使得第k層摔手機是測試ind層需要的 最少次數

# 跳至第k層需要 1次 跳至k層之後最壞的情況需要的次數 max(dp[k-1][cnt-1], dp[ind-k][cnt])

# max(dp[k-1][cnt-1], dp[ind-k][cnt]) 表示取差的情況(需要的測試次數最多)

# min表示採取這兩種策略中測試次數最小的

dp[ind]

[cnt]

=min

(dp[ind]

[cnt],1

+max

(dp[k-1]

[cnt-1]

, dp[ind-k]

[cnt]))

# ind-k會出現等於0的情況 0層需要的測試次數為0 生成陣列時已定義

# dp[k-1][cnt-1]: 在第k層測試壞了 樓層數測試範圍縮小至[1, k-1] 剩餘手機數量[cnt-1]

# dp[ind-k][cnt]: 在第k層測試沒壞 樓層數測試範圍縮小至[k+1, ind] 剩餘手機數量[cnt]

# print(f'層數 手機數量 需要測試次數:', dp[ind][cnt])

print

(dp[

1000][

3])

版本二

# coding=gbk

"""為了減少測試次數,從每個廠家抽樣3部手機參加測試。

某次測試的塔高為1000層,如果我們總是採用最佳策略,

在最壞的運氣下最多需要測試多少次才能確定手機的耐摔指數呢?

"""dp =[[

0,0,

0]for _ in

range

(1001)]

# 0層需要測試0次

# 乙個手機時測試i層的耐摔程度需要i次

for i in

range(1

,len

(dp)):

dp[i][0

]= i

# 無論幾個手機,測試第一層只需要1個手機

dp[1][

0], dp[1]

[1], dp[1]

[2]=

1,1,

1# dp[layer][pho_num]代表有pho_num個手機測試layer層最差運氣下需要的最少次數

for pho_num in

range(1

,3):

for layer in

range(2

,1001):

dp[layer]

[pho_num]

= dp[layer -1]

[pho_num]+1

for i in

range(2

, layer +1)

:# 發二:直接跳到第i層測試,加上後續測試次數即為總次數

# dp[layer-1][pho_num-1]: 表示在第i層測試時手機碎了,剩餘測試樓層數為layer-1,手機數量-1

# dp[layer-i][pho_num]:表示在第i層測試手機時手機未碎,剩餘測試樓層數layer-i,手機數pho_num

f2 =1+

max(dp[i -1]

[pho_num -1]

, dp[layer - i]

[pho_num]

) dp[layer]

[pho_num]

=min

(dp[layer]

[pho_num]

, f2)

print

(dp[

1000][

2])

藍橋杯 摔手機 耐摔指數

x星球的居民脾氣不太好,但好在他們生氣的時候唯一的異常舉動是 摔手機。各大廠商也就紛紛推出各種耐摔型手機。x星球的質監局規定了手機必須經過耐摔測試,並且評定出乙個耐摔指數來,之後才允許上市流通。x星球有很多高聳入雲的高塔,剛好可以用來做耐摔測試。塔的每一層高度都是一樣的,與地球上稍有不同的是,他們的...

藍橋杯摔手機測試次數

題目 x星球的居民脾氣不太好,但好在他們生氣的時候唯一的異常舉動是 摔手機。各大廠商也就紛紛推出各種耐摔型手機。x星球的質監局規定了手機必須經過耐摔測試,並且評定出乙個耐摔指數來,之後才允許上市流通。x星球有很多高聳入雲的高塔,剛好可以用來做耐摔測試。塔的每一層高度都是一樣的,與地球上稍有不同的是,...

天價手機屏照樣摔,我就不相信你的手機沒被摔過!

古代人手不離扇是一種瀟灑,現代人手不離機是一種病 手機依賴症。這種病也恰好證明你與這個社會緊緊相連,沒有因社會的高速發展而被落下。使用手機的時間越長,另乙個現象就發生得越多,這也就大部分人都有過手機螢幕摔碎的慘痛經歷,尤其是乙隻手操控時,更容易發生這種悲劇。據androidauthority報道,英...