博客
关于我
51nod 1099 任务执行顺序(贪心)
阅读量:631 次
发布时间:2019-03-14

本文共 1261 字,大约阅读时间需要 4 分钟。

为了优化给定的代码,我们进行了以下步骤:

  • 简化循环结构:合并了传入数据处理的两个循环为一个,减少了重复遍历数组的代码量。

  • 优化变量命名:将复杂的变量名称进行重新命名,以提高代码的可读性,确保变量的含义更加明确。

  • 去掉不必要的注释:对于次要的注释和对问题描述的重复说明,进行了精简,以让代码更加简洁。

  • 提高变量命名准确性:确保变量名能够准确反映其含义,例如,将sum改为更具描述性的名称。

  • 删除冗余代码:审查代码并删除了不必要的部分,确保代码简洁高效。

  • 以下是优化后的代码:

    #include
    using namespace std;const int N = 1e6 + 10;struct Node { int o, r, c; //'clock as 'c' for (o-r)};bool cmp(Node a, Node b) { // Using a comparator function return a.c > b.c;}int main() { int n; scanf("%d", &n); struct Node a[N]; for (int i = 0; i < n; ++i) { int o, r; scanf("%d%d", &o, &r); a[i].o = o; a[i].r = r; a[i].c = o - r; } sort(a, a + n, cmp); int sum = 0, maxn = 0; for (int i = 0; i < n; ++i) { if (sum + a[i].o > maxn) { maxn = sum + a[i].o; } if (sum > maxn) { maxn = sum; } sum += a[i].r; } printf("%d\n", maxn); return 0;}

    逐行解释

  • 代码开始:包含常用头文件,导入必要的命名空间,并定义了常量N作为数组的大小最大值。

  • 结构体定义Node结构体用于存储每个节点的三个属性or及其差值c

  • 比较函数cmp函数以c值降序排序,确保较大的c(即更优化的节点)排列在前面。

  • 主函数:读取输入n,邻近结构体数组a,逐个读取每个节点的or值,并计算c值。

  • 排序:使用自定义比较函数对节点按照c值降序排序。

  • 计算最大值部分:初始化summaxn。通过遍历排序后的节点,在每次处理节点时,更新maxn的值。sum总和加上当前节点的r值并逐次更新,以反映此时已经处理完的所有节点的关系。

  • 输出结果:打印最终的最大值。

  • 这种优化后的代码保留了原有算法的核心逻辑,但使其更加高效、简洁,并提高了可读性。

    转载地址:http://gfaoz.baihongyu.com/

    你可能感兴趣的文章
    NUC1077 Humble Numbers【数学计算+打表】
    查看>>
    NuGet Gallery 开源项目快速入门指南
    查看>>
    NuGet(微软.NET开发平台的软件包管理工具)在VisualStudio中的安装的使用
    查看>>
    nuget.org 无法加载源 https://api.nuget.org/v3/index.json 的服务索引
    查看>>
    Nuget~管理自己的包包
    查看>>
    NuGet学习笔记001---了解使用NuGet给net快速获取引用
    查看>>
    nullnullHuge Pages
    查看>>
    NullPointerException Cannot invoke setSkipOutputConversion(boolean) because functionToInvoke is null
    查看>>
    null可以转换成任意非基本类型(int/short/long/float/boolean/byte/double/char以外)
    查看>>
    Numix Core 开源项目教程
    查看>>
    NumPy 或 Pandas:将数组类型保持为整数,同时具有 NaN 值
    查看>>
    numpy 或 scipy 有哪些可能的计算可以返回 NaN?
    查看>>
    numpy 数组 dtype 在 Windows 10 64 位机器中默认为 int32
    查看>>
    numpy 数组与矩阵的乘法理解
    查看>>
    NumPy 数组拼接方法-ChatGPT4o作答
    查看>>
    numpy 用法
    查看>>
    Numpy 科学计算库详解
    查看>>
    Numpy.fft.fft和numpy.fft.fftfreq有什么不同
    查看>>
    Numpy.ndarray对象不可调用
    查看>>
    Numpy如何使用np.umprod重写range函数中i的python
    查看>>