1. 题目链接
https://www.luogu.com.cn/problem/P1909
P1909 [NOIP2016 普及组] 买铅笔
2. 题目描述
题目描述:小P老师去买笔,商店有3种包装的笔,不拆开单独卖。小P决定只买一种包装的笔,问:在每种包装都足量的情况下,小P怎么才能花最少得钱?
输入:4行数据,第一行表示需要的铅笔数量,其余三行每行有两个数字,分别代表每种包装的铅笔数量和价格
输出:小P要花的最少的钱
3. 我的思考
INT_MAX在<limits.h>头文件里面。解题的想法就是简单的模拟。
4. 我提交的题解
/*
https://www.luogu.com.cn/problem/P1909[NOIP2016 普及组] 买铅笔题目描述:小P老师去买笔,商店有3种包装的笔,不拆开单独卖。小P决定只买一种包装的笔,问:在每种包装都足量的情况下,小P怎么才能花最少得钱?
输入:4行数据,第一行表示需要的铅笔数量,其余三行每行有两个数字,分别代表每种包装的铅笔数量和价格
输出:小P要花的最少的钱
*/#include <math.h>
#include <limits.h>
#include <iostream>
using namespace std;int main()
{// 采购的铅笔数量int n;// 包装里的铅笔数量和价格int num, price;// 采购的包装数int count = 0;int ans = INT_MAX;cin >> n;for (int i = 0; i < 3; ++i){cin >> num >> price;count = ceil(n * 1.0f / num);ans = min(ans, count * price);}cout << ans << endl;return 0;
}