1 条题解
-
0
解题思路
我们将采取贪心策略。首先,我们尽量多地组成 这个数。最多能组成的个数为:
然后,用剩下的数字尽量多地组成 这个数。此时数字 的剩余数量为 ,因此最多能组成的个数为:
不难发现,最终答案为:
$$\text{ans} = 32 \times n_{32} + 256 \times n_{256} $$时间复杂度为 。
#include <iostream> #include <algorithm> using namespace std; int main() { int k2, k3, k5, k6; cin >> k2 >> k3 >> k5 >> k6; int n256 = min(k2, min(k5, k6)); int n32 = min(k3, k2 - n256); cout << 32 * n32 + 256 * n256 << endl; return 0; }
- 1
信息
- ID
- 6783
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 2
- 已通过
- 1
- 上传者