博客
关于我
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/

    你可能感兴趣的文章
    mysqlreport分析工具详解
    查看>>
    MySQLSyntaxErrorException: Unknown error 1146和SQLSyntaxErrorException: Unknown error 1146
    查看>>
    Mysql_Postgresql中_geometry数据操作_st_astext_GeomFromEWKT函数_在java中转换geometry的16进制数据---PostgreSQL工作笔记007
    查看>>
    mysql_real_connect 参数注意
    查看>>
    mysql_secure_installation初始化数据库报Access denied
    查看>>
    MySQL_西安11月销售昨日未上架的产品_20161212
    查看>>
    Mysql——深入浅出InnoDB底层原理
    查看>>
    MySQL“被动”性能优化汇总
    查看>>
    MySQL、HBase 和 Elasticsearch:特点与区别详解
    查看>>
    MySQL、Redis高频面试题汇总
    查看>>
    MYSQL、SQL Server、Oracle数据库排序空值null问题及其解决办法
    查看>>
    mysql一个字段为空时使用另一个字段排序
    查看>>
    MySQL一个表A中多个字段关联了表B的ID,如何关联查询?
    查看>>
    MYSQL一直显示正在启动
    查看>>
    MySQL一站到底!华为首发MySQL进阶宝典,基础+优化+源码+架构+实战五飞
    查看>>
    MySQL万字总结!超详细!
    查看>>
    Mysql下载以及安装(新手入门,超详细)
    查看>>
    MySQL不会性能调优?看看这份清华架构师编写的MySQL性能优化手册吧
    查看>>
    MySQL不同字符集及排序规则详解:业务场景下的最佳选
    查看>>
    Mysql不同官方版本对比
    查看>>