目录
- T1. 制作蛋糕
-
- 思路分析
- T2. 找和最接近但不超过K的两个元素
-
- 思路分析
- T3. 数根
-
- 思路分析
- T4. 迷信的病人
-
- 思路分析
- T5. 算 24
-
- 思路分析
T1. 制作蛋糕
小 A 擅长制作香蕉蛋糕和巧克力蛋糕。制作一个香蕉蛋糕需要 2 2 2 个单位的香蕉, 250 250 250 个单位的面粉, 75 75 75 个单位的糖, 100 100 100 个单位的黄油。制作一个巧克力蛋糕需要 75 75 75 个单位的可可粉, 200 200 200 个单位的面粉, 150 150 150 个单位的糖, 150 150 150 个单位的黄油。一个香蕉蛋糕可以卖出 400 400 400 元,而一个巧克力蛋糕可以卖出 450 450 450 元。为了避免蛋糕变质,每种蛋糕至多只能制作 100 100 100 个。
现已知每种原料的数量,求小 A 至多可以卖出多少元的蛋糕。
时间限制:1 s
内存限制:64 MB
- 输入
依次输入面粉、香蕉、糖、黄油、可可粉的数量,每种原料数量均为不超过 100000 100000 100000 的整数。 - 输出
输出一个整数,表示最多卖出的钱数。 - 样例输入
4000 6 2000 500 500
- 样例输出
1700
思路分析
此题考查枚举算法,属于入门题。
由于面粉、糖和黄油是两种蛋糕都需要的配料,因此我们可以通过枚举香蕉蛋糕的数量,计算出这三种配料的剩余量,进而计算出可以制作的巧克力蛋糕数量。注意巧克力蛋糕的数量应该取四种配料分别计算出的数量中最少的数量。
/*
* Name: T1.cpp
* Problem: 制作蛋糕
* Author: Teacher Gao.
* Date&Time: 2024/11/30 11:32
*/
#include <iostream>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
int flour, banana, sugar, butter, coco;
cin >> flour >> banana >> sugar >> butter >> coco;
int ans = 0;
for (int i = 0; i <= 100 && i*2 <= banana; i++) {
int a = (flour - i * 250) / 200;
int b = (sugar - i * 75) / 150;
int c = (butter - i * 100) / 150;
int d = coco / 75;
int p = min(min(a, b), min(c, d));
if (p < 0) break;
ans = max(ans, i*400 + p*450);
}
cout << ans << endl;
return 0;
}
T2. 找和最接近但不超过K的两个元素
在一个长度为 n n n( 1 < n < 1000 1 < n < 1000 1<n<1000)的整数( 0 0 0 至 1000 1000 1000 之间)序列中,选出两个元素使得它们的和最接近但不超过 K ( 0 ≤ K < 2000 ) K(0 \le K < 2000) K(0≤K<2000)。保证一定存在不超过 K K K 的两元素和。
时间限制:1 s
内存限制:64 MB
- 输入
第一行输入一个整数 n n