#include<bits/stdc++.h>
using namespace std;
int main(){
int n,x,y;
cin>>n>>x>>y; //插入或删除一个字符为x,复制当前整个文本为y
vector<long>dp(n+1);
dp[1]=x;
for(int i=2;i<=n;++i){
if(i%2==0)dp[i]=min(dp[i/2]+y,dp[i-1]+x); //为偶数则前一步操作可以增加一个字符或整个复制
if(i%2==1)dp[i]=min(dp[i-1]+x,dp[(i+1)/2]+y+x); //前一步操作只能是增加或删除一个字符
}
cout<<dp[n];
return 0;
}
3302. 打印
最新推荐文章于 2024-11-12 21:59:57 发布