SUDEWEI
2025-02-23 15:44:54
发布于:北京
#include <iostream>
#include <vector>
#include <algorithm>
int main() { int N, K; std::cin >> N >> K; /**YXL: 读取浆果树的数量 N 和篮子的数量 K*/ std::vector<int> berries(N); for(int i = 0; i < N; ++i) std::cin >> berries[i]; /**YXL: 读取每棵树上的浆果数量并存储到 berries 向量中*/ int ans = 0; for(int x = 1; x <= 1000; ++x) { /**YXL: 开始枚举每个篮子中浆果的最小数量 x,范围从 1 到 1000*/ int fullBaskets = 0; std::vector<int> remaining; for(int i = 0; i < N; ++i) { fullBaskets += berries[i] / x; remaining.push_back(berries[i] % x); } /**YXL: 计算能装满 x 个浆果的篮子数量 fullBaskets,并记录每棵树剩余的浆果到 remaining 向量中*/ if(fullBaskets < K / 2) continue; /**YXL: 如果能装满的篮子数量小于 K/2,跳过当前枚举的 x*/ std::sort(remaining.begin(), remaining.end(), [](int a, int b) { return a > b; }); /**YXL: 对剩余的浆果数量按从大到小排序*/ int bessieBerries = fullBaskets >= K ? (K / 2) * x : (fullBaskets - K / 2) * x; for(int i = 0; i < K - fullBaskets && i < remaining.size(); ++i) bessieBerries += remaining[i]; /**YXL: 计算 Bessie 能得到的浆果数量,如果能装满的篮子数大于等于 K,Bessie 得到 K/2 个装 x 个浆果的篮子;否则先得到部分装满的篮子,再加上剩余浆果数量*/ ans = std::max(ans, bessieBerries); } /**YXL: 更新最大的浆果数量 ans*/ std::cout << ans << std::endl; return 0; }
C++ 语句写成一行的利弊之思
在 C++ 编程的世界里,将语句写成一行是一种独特的代码书写方式。这种方式看似简单,却在程序设计的领域中有着不可忽视的影响,探讨其好处,能让我们对编程有更深入的理解。
把 C++ 语句写成一行,最直观的好处在于代码的简洁性。在高中阶段,我们学习的数学公式和物理定律,总是追求用最简洁的形式表达复杂的原理。编程亦是如此,将多个语句合并成一行,能快速实现逻辑功能,减少冗余。比如在简单的变量赋值和运算中,“int a = 5, b = 3, result = a + b;” 这样一行代码,就完成了变量的定义与运算,相比于将这些操作分散成多行,它大大缩短了代码的篇幅,使代码在视觉上更加紧凑。在处理一些复杂的算法时,简洁的代码还能让程序员一眼看清关键步骤,避免在冗长的代码中迷失方向,提高编程效率。
一行代码在团队协作中也能发挥重要作用。在一个项目中,不同程序员的代码风格可能大相径庭,这可能导致代码的可读性和可维护性降低。而将 C++ 语句写成一行,可以一定程度上统一代码风格。当团队成员都遵循这种简洁的书写方式时,代码的一致性增强,每个人都能迅速理解他人的代码逻辑,减少沟通成本。就像一场接力比赛,统一的书写风格是交接棒时的默契,让项目的推进更加顺畅。
此外,从代码的执行效率角度来看,一行代码也有潜在的优势。在编译过程中,编译器处理一行代码的时间和资源消耗相对较少。虽然这种优势在简单程序中可能不明显,但在大型项目中,无数行代码的累积效应会使程序的编译速度得到显著提升。更快的编译速度意味着程序员能更快地看到代码修改后的效果,及时调整和优化程序,提高开发进度。
然而,我们也必须清醒地认识到,将 C++ 语句写成一行并非完美无缺。过度追求简洁可能会牺牲代码的可读性。对于初学者或不熟悉代码逻辑的人来说,一行复杂的代码犹如一团乱麻,难以理解和调试。在高中学习中,我们知道清晰的解题步骤有助于检查错误和理解原理,编程同样如此。而且,当代码需要修改或扩展时,一行代码可能会带来更大的困难,因为牵一发而动全身,稍有不慎就可能导致整个程序出错。
将 C++ 语句写成一行有其独特的好处,它能让代码简洁高效,促进团队协作。但我们也不能忽视其可能带来的问题。在编程过程中,我们需要根据具体情况,权衡利弊,选择最合适的代码书写方式,让编程更好地服务于我们的需求。
这里空空如也
有帮助,赞一个