一直想着用优先队列dfs呢。。超时。。
动态规划真是好东西。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll dp[10000010];
ll n,x,y;
int main()
{
scanf("%I64d %I64d %I64d",&n,&x,&y);
dp[1]=x;
for(int i=2;i<=n;i++)
dp[i]=min(dp[i-1]+x,dp[(i+1)/2]+y+x*(i%2));
printf("%I64d\n",dp[n]);
return 0;
}