题目翻译

四个整数,$n,B,x,y$,每次可以选择 $a_i=a_{i-1}+x$ 或者 $a_i=a_{i-1}-y$,必须保证 $a_i\leq B$,问 $a$ 数组的元素和。

题目思路

这道题可以贪心。

每次尽可能加上 $x$,如果超过就减掉 $y$。

这肯定是对的贪心策略;

因为,这样肯定保证多加上少减去。

每次都是加 $x$,减 $y$,所以多加少减肯定正确。

AC 代码

void solve()
{
    int n,b,x,y;
    cin>>n>>b>>x>>y;
    ll ans=0,last=0;
    for(int i=1;i<=n;i++)
    {
        last=(last+x>b?last-y:last+x);
        ans+=last;
    }
    cout<<ans<<endl;
}
最后修改:2023 年 04 月 22 日
v我50吃疯狂星期四