201709-1 打酱油
时间: 2023-10-22 16:04:24 浏览: 49
这是一道NOI(全国青少年信息学奥林匹克)模拟赛的题目。
题目描述:
在一次采购中,需要买N瓶酱油。由于预算有限,店家提供了两种购买方案:
方案一:每瓶酱油单价为A元(人民币,下同)
方案二:先交纳B元,然后每瓶酱油单价为C元。
现在,请你编写程序,计算出采用哪种方案,能够使得总花费更少。
输入格式:
输入文件共一行,包含四个用空格隔开的正整数N、A、B、C,其中N和C均不超过1000,A和B均不超过100。
输出格式:
输出文件共一行,包含一个正整数,即采用哪种方案所需的最少花费(结果向下取整到整数元)。
样例输入1:
5 10 20 5
样例输出1:
70
样例输入2:
6 2 5 4
样例输出2:
17
解题思路:
按照题目描述,我们可以得到:
方案一的花费为:N*A元
方案二的花费为:B+N*C元
我们只需要比较方案一和方案二的花费大小即可。
如果方案一的花费小于等于方案二的花费,选择方案一;否则选择方案二。
需要注意的是,最终输出的结果向下取整到整数元。
参考代码:
相关问题
打酱油(贪心)1560
这道题是一道典型的贪心算法题目。
题目描述:有一个容量为 n 的油桶,每卖一瓶酱油就能得到一块钱,每卖出一瓶酱油后,油桶的容量就会减少 1。现在有m瓶酱油,每瓶需要占用 ai 的容量,问最多能得到多少钱。
算法思路:首先,需要将酱油按照占用容量从小到大排序。然后,从第一瓶酱油开始卖,每次卖出一瓶酱油后,将当前油桶的容量减去该瓶酱油所占用的容量。如果当前油桶的容量小于 0,则说明无法再卖出酱油,此时需要结束卖酱油的过程。最后,将卖出的酱油数量乘以单价即为最终的收益。
具体实现方式如下:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_N 100000
int cmp(const void* a, const void* b) {
return *(int*)a - *(int*)b;
}
int main() {
int n, m;
scanf("%d%d", &n, &m);
int a[MAX_N];
for (int i = 0; i < m; i++) {
scanf("%d", &a[i]);
}
qsort(a, m, sizeof(int), cmp);
int ans = 0, cur = n;
for (int i = 0; i < m && cur > 0; i++) {
if (cur >= a[i]) {
ans++;
cur -= a[i];
}
}
printf("%d\n", ans);
return 0;
}
```
在这个例子中,首先读入 n 和 m,分别表示油桶的容量和酱油的数量。然后,使用一个数组 a 存储每瓶酱油所占用的容量,并按照占用容量从小到大排序。接下来,使用一个循环卖出酱油,每次卖出一瓶酱油后,将当前油桶的容量减去该瓶酱油所占用的容量。如果当前油桶的容量小于 0,则说明无法再卖出酱油,此时需要结束卖酱油的过程。最后,将卖出的酱油数量乘以单价即为最终的收益。
需要注意的是,使用 qsort 函数对数组 a 进行排序时,需要传入一个比较函数 cmp,用来指定排序的方式。在比较函数中,需要将两个元素进行比较,并返回一个整数,表示它们之间的大小关系。在这个例子中,比较函数的实现方式为返回 a - b 的值,表示将 a 放在 b 的前面。
2022年酱油市场分析
根据目前的市场趋势和预测,2022年酱油市场将继续保持稳定增长。一方面,全球范围内对于健康食品的需求不断增长,而酱油作为一种传统的调味品,其天然、低脂、低糖的特点符合了这一需求,因此其受到了越来越多消费者的青睐。另一方面,酱油的应用范围也在不断扩大,除了传统的烹饪调味外,还可以用于烧烤、涮火锅等领域,这也带来了更多的市场需求。
在未来几年,随着人们对于健康饮食的重视程度不断提高,酱油市场将会出现更多的创新和变化,例如推出更多口味、更多功能性的酱油产品。此外,随着工业化程度的提高和现代化生产技术的应用,酱油的生产成本也会逐渐降低,这将进一步促进市场的发展。
总的来说,2022年酱油市场将继续保持稳步增长,但随着市场竞争的加剧,品牌竞争和创新将成为企业发展的关键。