题解 CF1065A 【Vasya and Chocolate】

TRZ_2007

2020-10-24 10:46:32

Solution

**题目传送门:[CF1065A Vasya and Chocolate](https://www.luogu.com.cn/problem/CF1065A)** # Description 给你 $t$ 组数据,每组数据给出四个整数 $a$,$b$,$c$,$s$ ,表示你有 $s$ 块钱,每个物品都需要 $c$ 块钱,买的物品每大于等于一次 $a$ 就可以免费获得 $b$ 个物品,求得到的物品数。 # Solution ~~这明明是小学奥数好吧~~…… 我们记 $x$ 为不使用优惠可以买到的物品数量,则易得:$x = \frac{s}{c}$ ,然后我们计算出你可以使用优惠的次数为 $\frac{x}{a}$ ,能免费获得的物品数即为 $\frac{x}{a} \times b$ ,最后相加即可。 # Code ```cpp #include <bits/stdc++.h> using namespace std; int t; long long s,a,b,c,sum,dieta; //注意要开long long int main() { scanf("%d",&t); while(t--) { scanf("%lld %lld %lld %lld",&s,&a,&b,&c); sum = s / c; //不使用优惠得到的物品数 dieta = (sum / a) * b; //使用优惠后免费得到的物品数 printf("%lld\n",sum + dieta); //相加即可出答案 } return 0; } ```