第九屆藍橋杯 耐摔指數

2021-10-05 10:10:19 字數 1378 閱讀 5087

【問題描述】

星球的居民脾氣不太好,但好在他們生氣的時候唯一的異常舉動是:摔手機。

各大廠商也就紛紛推出各種耐摔型手機。x星球的質監局規定了手機必須經過耐摔測試,並且評定出乙個耐摔指數來,之後才允許上市流通。

x星球有很多高聳入雲的高塔,剛好可以用來做耐摔測試。

塔的每一層高度都是一樣的,與地球上稍有不同的是,他們的第一層不是地面,而是相當於我們的2樓。

如果手機從第 7 層扔下去沒摔壞,但第8層摔壞了,則手機耐摔指數 = 7。

特別地,如果手機從第 1 層扔下去就壞了,則耐摔指數 = 0。

如果到了塔的最高層第 n 層扔沒摔壞,則耐摔指數 = n

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

如果已知了測試塔的高度,並且採用最佳策略,在最壞的運氣下最多需要測試多少次才能確定手機的耐摔指數呢?

【輸入格式】

乙個整數 n, 表示測試塔的高度。(3 < n < 10000)

【輸出格式】

輸出乙個整數,表示最多測試多少次。

【樣例輸入】

【樣例輸出】

【解釋】

手機a從2樓扔下去,壞了,就把b手機從1樓扔;否則a手機繼續3層扔下

【樣例輸入2】

【樣例輸出2】

【解釋】

a手機從4層扔,壞了,則下面有3層,b,c 兩部手機2次足可以測出指數;

若是沒壞,手機充足,上面5,6,7 三層2次也容易測出。

題解

動態規劃:

f[i][j]:有 i 部手機且樓數為 j 時,最壞運氣下的最少測試次數。

在第 k 層的測試情況:

狀態轉移方程

f[i][j] = min(f[i][j], max(f[i - 1][k - 1], f[i][j - k]) + 1)

#include

#include

using

namespace std;

int f[5]

[10005];

intmain()

藍橋杯第九屆試題 耐摔指數

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

藍橋杯 摔手機 耐摔指數

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

藍橋杯第九屆決賽

x星球的鈔票的面額只有 100元,5元,2元,1元,共4種。小明去x星旅遊,他手裡只有2張100元的x星幣,太不方便,恰好路過x星銀行就去換零錢。小明有點強迫症,他堅持要求200元換出的零鈔中2元的張數剛好是1元的張數的10倍,剩下的當然都是5元面額的。銀行的工作人員有點為難,你能幫助算出 在滿足小...