CF1065A Vasya and Chocolate 题解
阅读原文时间:2023年07月08日阅读:2

小 V 有 \(s\) 块钱,商店里有巧克力卖,每块巧克力 \(c\) 块钱,现在商店给出优惠:购买 \(a\) 块巧克力可以免费获得 \(b\) 块巧克力,求小 V 最多能够买到的巧克力的块数。

你需要处理 \(t\) 组询问。

数据范围:\(1\leqslant t\leqslant 100,1\leqslant s,a,b,c\leqslant 10^9\)。

我们可以明显的发现,尽量把钱花完能够获得最多的巧克力。所以我们先买 \(\left\lfloor\dfrac{s}{c}\right\rfloor\) 块巧克力,然后可以获得 \(\left\lfloor\dfrac{\left\lfloor\dfrac{s}{c}\right\rfloor}{a}\right\rfloor\) 次优惠,因此答案就是 \(\left\lfloor\dfrac{s}{c}\right\rfloor+\left\lfloor\dfrac{\left\lfloor\dfrac{s}{c}\right\rfloor}{a}\right\rfloor\times b\)。

int t;
long long s, a, b, c;

int main() {
    scanf("%d", &t);
    while(t--) {
        scanf("%lld%lld%lld%lld", &s, &a, &b, &c);
        printf("%lld\n", s / c + s / c / a * b);
    }
    return 0;
}

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章