1. 程式人生 > >bzoj 1962 硬幣遊戲 (猜數問題)

bzoj 1962 硬幣遊戲 (猜數問題)

body algo out main math class 整數 images int

【bzoj1962】模型王子

Description

技術分享圖片

Input

輸入數據共一行,兩個整數N,K,用一個空格隔開,具體意義如題目中所述。

Output

輸出數據共一行,為最少所需要的時間S。

Sample Input

5 3

Sample Output

5

HINT

對於全部的數據,1 < = K < = 100,1 < = N < = 10^5

題解:

  https://wenku.baidu.com/view/62c94bf7ba0d4a7302763a23.html

 1 #include<cstring>
 2
#include<cmath> 3 #include<algorithm> 4 #include<iostream> 5 #include<cstdio> 6 7 8 using namespace std; 9 inline int read() 10 { 11 int x=0,f=1;char ch=getchar(); 12 while(ch>9||ch<0){if (ch==-) f=-1;ch=getchar();} 13 while(ch<=9
&&ch>=0){x=(x<<3)+(x<<1)+ch-0;ch=getchar();} 14 return x*f; 15 } 16 17 int n,k; 18 int f[100007][107]; 19 20 int main() 21 { 22 n=read(),k=read(); 23 for (int i=2;;i++) 24 { 25 f[i][1]=i/2; 26 for (int j=2;j<=k;j++) 27 f[i][j]=max(f[i-1
][j]+f[i-2][j-2],f[i-2][j]+f[i-1][j-1])+1; 28 if (f[i][k]>=n) 29 { 30 printf("%d\n",i); 31 return 0; 32 } 33 } 34 }

bzoj 1962 硬幣遊戲 (猜數問題)