CodeForces

来源:互联网 发布:模拟基金交易软件 编辑:程序博客网 时间:2024/06/05 09:22

注意long long

题目意思是用a去凑一个长度为n的串

通过加减 ‘a’ ,或者double当前字符串


当前——

i  为奇数

我以为是规律题,原 来是dp  但是规律跟dp是有相通之处的,

通过这个题目,之前一直对dp没有任何感觉,突然之间找到了一种感觉,继续这两天练一练dp

不能再一直做水题了

#include <iostream>#include<cstring>#include<cstdio>#include<vector>#include<set>#include<algorithm>using namespace std;const int maxn=10000000+5;long long  dp[maxn];int main(){   long long  n,x,y;   cin>>n>>x>>y;        dp[1]=x;    for(int i=2;i<=n;i++)    {        if(i%2==0)        {            dp[i]=min(dp[i-1]+x,dp[i/2]+y);        }        else{                dp[i]=min(dp[i/2+1]+x+y,dp[i-1]+x);                dp[i]=min(dp[i/2]+x+y,dp[i]);           }    }   cout<<dp[n]<<endl;   // cout << "Hello world!" << endl;    return 0;}


原创粉丝点击