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

    你可能感兴趣的文章
    Nginx 的优化思路,并解析网站防盗链
    查看>>
    Nginx 的配置文件中的 keepalive 介绍
    查看>>
    Nginx 相关介绍(Nginx是什么?能干嘛?)
    查看>>
    Nginx 知识点一网打尽:动静分离、压缩、缓存、跨域、高可用、性能优化...
    查看>>
    nginx 禁止以ip形式访问服务器
    查看>>
    NGINX 端口负载均衡
    查看>>
    Nginx 结合 consul 实现动态负载均衡
    查看>>
    Nginx 负载均衡与权重配置解析
    查看>>
    Nginx 负载均衡详解
    查看>>
    Nginx 负载均衡配置详解
    查看>>
    nginx 配置 单页面应用的解决方案
    查看>>
    nginx 配置dist 加上跨域配置
    查看>>
    nginx 配置https(一)—— 自签名证书
    查看>>
    nginx 配置~~~本身就是一个静态资源的服务器
    查看>>
    Nginx 配置服务器文件上传与下载
    查看>>
    Nginx 配置清单(一篇够用)
    查看>>
    Nginx 配置解析:从基础到高级应用指南
    查看>>
    Nginx 集成Zipkin服务链路追踪
    查看>>
    nginx 集群配置方式 静态文件处理
    查看>>
    Nginx+Django-Python+BPMN-JS的整合工作流实战项目
    查看>>