真奇怪,TLE了
2025-04-04 22:03:31
发布于:广东
19阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int fb(int x){
if(x<=2){
return 1;
}
return fb(x-1)+fb(x-2);
}
int main(){
int n;
cin>>n;
cout<<fb(n);
return 0;
}
全部评论 3
暴力出奇迹,结果TLE
2025-04-13 来自 浙江
0#include<bits/stdc++.h> using namespace std; using ll=long long; ll dp[10000001]; // 记忆化搜索 ll fb(ll x){ if(dp[x]) return dp[x]; // 如果曾经被记录过,直接返回 if(x<=2){ return 1; } return dp[x]=fb(x-1)+fb(x-2); // 返回的同时记录 } int main(){ ll n; cin>>n; cout<<fb(n); return 0; }
2025-04-04 来自 北京
0你这个的时间复杂度约为 ,会超时。
建议学习一下记忆化或递推。2025-04-04 来自 广东
0
有帮助,赞一个