思路:dp,h=log n。
代码:
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll n;
ll f[1000000]={0};
int main() {
scanf("%lld",&n);
int ans=1;
f[1]=2;f[2]=3;
for(int i=3; i<=n ;i++) {
f[i]=f[i-1]+f[i-2];
if(n<f[i]) {
ans=i-1;
break;
}
}
printf("%d",ans);
return 0;
}
本文深入探讨了使用动态规划(DP)解决网球锦标赛问题的方法,通过递推公式f[i]=f[i-1]+f[i-2]计算出获胜轮次,并在代码中实现了这一算法,最终输出了达到特定参赛人数所需的轮数。
1万+

被折叠的 条评论
为什么被折叠?



