博客
关于我
CCF 201909-2 小明种苹果(续)满分代码
阅读量:307 次
发布时间:2019-03-03

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

小明种苹果(续)

问题描述

小明种苹果的任务再次被赋予任务,需要根据给定的苹果种植数据,计算出总的苹果数量、破损数量以及异常点数量。通过分析输入数据和代码逻辑,我们可以一步步完成这一任务。

输入数据

输入数据分为两行,第一行为44 74 -7 -12 -55 73 -8 -6 59 -45 76 -5 -10 60 -25 80 -6 -15 59 0,第二行为54 10 0 9 04 10 -2 7 02 10 04 10 -3 5 04 10 -1 8 0。

这些数据可能表示苹果种植的不同分段,每个分段的苹果数量以及破损情况。

解题思路

  • 读取输入数据:首先读取第一行的n值,确定分段数量。
  • 初始化变量:创建一个记录破损情况的数组drop,以及一个存储每段苹果数量的数组b。
  • 遍历每一段:对于每一段,读取t值后,处理b数组中的每个元素。
  • 计算当前段苹果数:如果当前段是第一段,直接将a设置为b[0]。对于后续段,检查是否有破损情况。如果当前段破损,记录并更新a为当前段的苹果数;否则,累加当前段的苹果数。
  • 更新总苹果数:将当前段的苹果数加到总苹果数s中。
  • 计算破损数:如果当前段破损,增加破损数D。
  • 处理异常点:根据相邻段的破损情况,计算异常点数量E。
  • 输出结果:最后输出总苹果数、破损数以及异常点数量。
  • 代码实现

    #include 
    using namespace std;const int N = 1000;int main() { int n, t, s = 0, a, D = 0, E = 0; cin >> n; int drop[N] = {0}; int b[N + 2]; for (int j = 1; j <= n; ++j) { cin >> t; for (int i = 0; i < t; ++i) { cin >> b[i]; if (i == 0) { a = b[0]; } else if (b[i] > 0) { if (a > b[i]) { drop[j] = 1; a = b[i]; } else { a += b[i]; } } s += a; } if (drop[j]) { D++; } for (int j = 1; j <= n; ++j) { if (j == 1 && drop[n] && drop[1] && drop[2]) { E++; } else if (j == n && drop[j - 1] && drop[j] && drop[1]) { E++; } else if (j != 1 && j != n && drop[j - 1] && drop[j] && drop[j + 1]) { E++; } } } cout << s << " " << D << " " << E << endl; return 0;}

    结果分析

    通过上述代码处理输入数据,可以得到以下结果:

    • 总苹果数(s):根据每段的苹果数量累加,得到总的苹果数量。
    • 破损数(D):记录每段破损情况,统计破损数量。
    • 异常点数量(E):根据相邻段的破损情况,判断是否存在异常点。

    通过代码的处理逻辑,可以清晰地看到如何从输入数据中提取有用信息,并根据给定的规则计算出所需的结果。

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

    你可能感兴趣的文章
    poj3061 Subsequence(尺取法)
    查看>>
    poj3074 DLX精确覆盖
    查看>>
    poj3252(组合数)
    查看>>
    poj3307
    查看>>
    Qt笔记——QMutex&QWaitCondition处理生产者消费者模式
    查看>>
    Qt笔记——QLable+QPixmap图片缩放踩坑
    查看>>
    Qt笔记——foreach与forever
    查看>>
    QT程序怎么挪到Linux下,linux+Qt程序如何打包发布
    查看>>
    Qt知识:视图框架QGraphicsWidget详解
    查看>>
    SpringBoot中项目启动及定时任务缓存数据库常用数据至内存变量并转换后高频调用
    查看>>
    Qt知识: 画刷风格
    查看>>
    QT的OpenGL渲染窗QOpenGLWidget Class
    查看>>
    QT的C++程序加载动态链接库DLL(Linux下是so)的方式
    查看>>
    QT界面操作1:如何跟踪鼠标位置?
    查看>>
    Qt环境搭建(Visual Studio)
    查看>>
    QT点击"X"按钮,调用closeEvent()函数来实现调用特定事件(附:粗略介绍QT的信号与槽的使用方法)...
    查看>>
    QT样式表——url路径
    查看>>
    QT数据库(三):QSqlQuery使用
    查看>>
    QT教程5:消息框
    查看>>
    SpringBoot中集成阿里开源缓存访问框架JetCache实现声明式实例和方法缓存
    查看>>