1 条题解

  • 0
    @ 2025-4-13 13:35:31

    C++代码

    #include<bits/stdc++.h> 
    using namespace std; 
    typedef long long ll; 
    const int MAX=10000005; 
    ll dp[MAX]; 
    int main() 
    { 
        ll n,x,y; 
        cin >> n >> x >> y; 
        dp[1]=x; 
        for(int i=2; i<=n; i++) 
            if(i%2) 
                dp[i]=min(dp[i-1]+x, dp[i/2+1]+x+y); 
            else 
                dp[i]=min(dp[i-1]+x,dp[i/2]+y); 
    
        cout << dp[n] << endl; 
        return 0; 
    } 
    

    信息

    ID
    2758
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者