CF1065A Vasya and Chocolate 题解

Content

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

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

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

Solution

我们可以明显的发现,尽量把钱花完能够获得最多的巧克力。所以我们先买 \(\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\)

Code

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;
}
posted @ 2021-12-16 15:05  Eason_AC  阅读(28)  评论(0)    收藏  举报