NOI OpenJudge 7627 雞蛋的硬度

2021-07-22 16:49:13 字數 695 閱讀 9646

描述

有n層樓,m個雞蛋,如果雞蛋從第a層摔下來沒摔破,但是從a+1層摔下來時摔破了,那麼就說這個雞蛋的硬度是a。這些雞蛋硬度相同,在求雞蛋的硬度下問使用最優策略在最壞情況下所需要的扔雞蛋次數。

樣例輸入

100 1

100 2

樣例輸出

100

14

這道題用的是動態規劃。f[i][j]表示i層樓j個雞蛋所需要的扔雞蛋次數。重點講一下dp方程(f[i][k]=min(f[i][k],max(f[j-1][k-1],f[i-j][k])+1))。j為1到i之間,max(f[j-1][k-1],f[i-j][k])+1)表示在j-1層雞蛋碎了的次數與從i到j之間的層雞蛋沒碎之間的最大值+1。

#include

#include

#include

#include

#include

using

namespace

std;

int f[110][15];

int main()

for(int i=1;i<=n;i++)}}

printf("%d\n",f[n][m]);

}return

0;}

noi openjudge 數字組合

有n個正整數,找出其中和為t t也是正整數 的可能的組合方式。如 n 5,5個數分別為1,2,3,4,5,t 5 那麼可能的組合有5 1 4和5 2 3和5 5三種組合方式。輸入的第一行是兩個正整數n和t,用空格隔開,其中1 n 20,表示正整數的個數,t為要求的和 1 t 1000 接下來的一行是...

NOI OpenJudge 8468 單詞序列

8468 單詞序列 總時間限制 1000ms 記憶體限制 1024kb 描述 給出兩個單詞 開始單詞和結束單詞 以及乙個詞典。找出從開始單詞轉換到結束單詞,所需要的最短轉換序列。轉換的規則如下 1 每次只能改變乙個字母 2 轉換過程中出現的單詞 除開始單詞和結束單詞 必須存在於詞典中 例如 開始單詞...

noi openjudge 4 7搜尋 懷錶問題

為啥我覺得這是個dp f i j k l 表示四種零件分別用了i,j,k,l個的方案數。然後發現這樣不能保證表一定能接在錶鏈首尾,也不知道狀態之間如何轉移,那麼加一維變成f i j k l s s表示首尾的狀態 4種 於是就可以預處理了。然後我們需要從給出的一共n個4種零件中選出k個。那麼dfs暴力...