4 条题解

  • -5
    @ 2025-3-5 17:26:35

    需要买 n 支铅笔,有三种可以买的,问你最少的价钱是多少。

    我们可以算出买每一种铅笔的价钱,然后将三种的价钱取最小值即可。

    我们来推算一下买一种铅笔的最小值,设包装内有 a 支,需要花 x 元,那么需要花的钱数就是一共要买的数量乘上每一包的价钱,也即是

    (n / a) + (n % a == 0 ? 0 : 1)) * x。

    #include <bits/stdc++.h>
    using namespace std;
    
    //#define int long long
    typedef long long LL;
    
    signed main()
    {
    	ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    	int n, a, b, c, x, y , z;
    	cin >> n;
    	cin >> a >> x;
    	cin >> b >> y;
    	cin >> c >> z;
    	int ans = min({((n / a) + (n % a == 0 ? 0 : 1)) * x, ((n / b) + (n % b == 0 ? 0 : 1)) * y, ((n / c) + (n % c == 0 ? 0 : 1)) * z});
    	cout << ans << endl;
        return 0;
    }
    

【深基3.例11】[NOIP2016 普及组] 买铅笔

信息

ID
46
时间
1000ms
内存
256MiB
难度
5
标签
递交数
123
已通过
49
上传者