全部评论 1

  • 你猜猜为什么叫记忆化

    2025-08-16 来自 浙江

    0
    • 啥意思

      2025-08-16 来自 浙江

      0
    • 你的解法是 O(1.618n)O(1.618^n) 的,通过不了。你应该使用一个数组,在得到答案时立即存储,下次递归到这时不用再递归下去,直接查询即可。

      2025-08-16 来自 浙江

      0
    • #include <iostream>
      #include <cstdio>
      using namespace std;
      long long f[65];
      long long fib(int n){
      	if(n == 1 || n == 2) return 1;
      	if(f[n]) return f[n];
      	f[n] = fib(n - 1) + fib(n - 2);
      	return f[n];
      }
      int main(){
      	ios::sync_with_stdio(0);
      	cin.tie(0), cout.tie(0);
      	int n;
      	cin >> n;
      	cout << fib(n);
      	
      	return 0;
      }
      

      2025-08-16 来自 浙江

      0

热门讨论