代码优化求助
查看原帖
代码优化求助
1400268
WWNNL楼主2024/7/27 01:29

优化求助

为啥有人能跑到10ms QWQ
我的只能到12ms

#include <iostream>
using namespace std;

//int Fib(int n){
//    int s;
//    if(n==1||n==2)  s=1;
//    else{
//        s=Fib(n-1)+Fib(n-2);
//    }
//    return s;
//}

int Fib(int n) {
    if (n <= 1) return n;

    int prev = 0, curr = 1;
    for (int i = 2; i <= n; ++i) {
        int next = prev + curr;
        prev = curr;
        curr = next;
    }
    return curr;
}

int up(int x,int k,int a){
    return Fib(x-1)*k+Fib(x-2)*a;
}

int main() {
    int a,n,m,x;
    cin>>a>>n>>m>>x;
    if(x==1||x==2)
    {
        cout<<a;
        return 0;
    }
    n--;
    int k=((Fib(n-2)+1)*a-m)/(1-Fib(n-1));
    int t=n;
    for(int i=0;i<n-x;i++)
        m-=up(t---2,k,a);
    cout<<m;
    return 0;
}

2024/7/27 01:29
加载中...