信奥赛CSP-J复赛集训(模拟算法专题)(4):P1046 [NOIP 2005 普及组] 陶陶摘苹果

信奥赛CSP-J复赛集训(模拟算法专题)(4):P1046 [NOIP 2005 普及组] 陶陶摘苹果

题目描述

陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 10 10 10 个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个 30 30 30 厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。

现在已知 10 10 10 个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。

输入格式

输入包括两行数据。第一行包含 10 10 10 个 100 100 100 到 200 200 200 之间(包括 100 100 100 和 200 200 200)的整数(以厘米为单位)分别表示 10 10 10 个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个 100 100 100 到 120 120 120 之间(包含 100 100 100 和 120 120 120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。

输出格式

输出包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。

输入输出样例 #1

输入 #1

复制代码
100 200 150 140 129 134 167 198 200 111
110

输出 #1

复制代码
5

说明/提示

【题目来源】

NOIP 2005 普及组第一题

AC代码:

cpp 复制代码
// 引入标准库头文件,包含常用的输入输出和数据结构
#include<bits/stdc++.h>
using namespace std;

int a[20];    // 存储苹果高度,数组下标1~10分别表示10个苹果的高度
int l, cnt=0; // l: 陶陶伸手能达到的总高度,cnt: 能摘到的苹果计数器

int main(){
    // 输入10个苹果的高度(题目保证按顺序输入)
    for(int i=1; i<=10; i++) 
        cin >> a[i];
    
    // 输入陶陶的身高,并加上凳子高度30cm得到可触及高度
    cin >> l;
    l += 30;
    
    // 遍历所有苹果,统计能够摘到的数量
    for(int i=1; i<=10; i++){
        if(l >= a[i]) // 若当前苹果高度小于等于可触及高度
            cnt++;     // 计数增加
    }
    
    // 输出能摘到的苹果总数
    cout << cnt;
    return 0;
}

代码功能分析:

  1. 数据存储 :使用数组a[20]存储输入的10个苹果高度(使用的有效下标为1~10)。
  2. 输入处理:首先循环读取10个苹果高度,然后读取陶陶的身高。
  3. 高度计算:将陶陶的身高加上30cm凳子高度,得到其最大可触及高度。
  4. 苹果计数:遍历所有苹果,若苹果高度≤可触及高度,则计数器+1。
  5. 结果输出:最终输出能摘到的苹果总数。

核心逻辑:

程序模拟了"陶陶摘苹果"场景,通过比较每个苹果的高度与陶陶的可触及高度(身高+凳子),统计能够摘到的苹果数量。时间复杂度为O(10),高效解决问题。

文末彩蛋:

关注并查看老师的个人主页,学习完整csp信奥赛完整系列课程: https://edu.csdn.net/lecturer/7901

相关推荐
程序员zgh2 分钟前
AUTOSAR CP 之 配置、开发流程、工具链 解析
c语言·开发语言·c++·系统架构·汽车
黎阳之光3 分钟前
数智孪生,全景可视——黎阳之光透明仓库,重构智慧仓储新范式
大数据·人工智能·算法·安全·数字孪生
小小测试开发4 分钟前
NVIDIA SANA-WM:2.6B 开源世界模型,单卡 H100 生成 1 分钟 720p 视频
c++·音视频·mfc
生成论实验室14 分钟前
WOLM认知引擎:为系统赋予“知止”的生命本能——一套确定性、内生安全的通用认知决策内核
人工智能·算法·机器学习·自动驾驶·安全架构
Romantic_love_16 分钟前
【类和对象 :上篇】
c++·学习
黎阳之光19 分钟前
智慧公安视频孪生平台:构建全域治安防控可视化体系
大数据·人工智能·算法·安全·数字孪生
大鸣王潮202419 分钟前
Flow-GRPO vs Flow-Factory: SD3 GRPO 实现对比
人工智能·算法
平行侠19 分钟前
40希尔排序 - 以递减间距进行插入排序
java·算法·排序算法
林熙蕾LXL21 分钟前
进程处理操作
开发语言·c++·算法
代码无bug抓狂人21 分钟前
用回溯算法解决01背包
数据结构·算法