CCF青少年计算机程序设计评级标准(四)

四级标准

1.1  定义

        了解几种常用的算法,并运用这些算法编写程序,解决问题。

1.2  知识要求

        1.      结构类型,文件操作。

        2.      数据类型的内在含义。

        3.      贪心法,递归,回溯法,模拟算法。

        4.      简单的字符串处理。

        5.      集合及集合的运算,加法原理与乘法原理,简单的排列和组合。

1.3  能力要求

        1.      能根据实际问题选择合适的数据类型。

        2.      能运用贪心、递归、回溯、模拟等算法解决实际问题。

        3.      能独立设计简单的测试数据,测试自己程序的正确性。

1.4  评价方法

        1.      与信息学奥林匹克全国联赛(NOIP)普及组复赛相衔接。采用上机编程考核方式,共4个试题,考试时间:3个小时。

        2.      在NOIP普及组复赛中成绩列全国前70%。

1.5  题例

试题名:校门外的树

文件名:tree

试题描述:

         某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,…,L,都种有一棵树。

         由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点出的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。

输入数据:

         输入文件名:tree.in

         第一行有两个整数L和M,L代表马路的长度,M代表区域的数目,L和M之间用一个空格隔开。接下来的M行每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的坐标。

输出数据:

         输出文件名为tree.out。

         一个整数,表示马路上剩余的树的数目。

输入输出样例:

         Tree.in                                           tree.out

         500 3                                              298

         150 300

         100 200

         470  471

数据规模:

         1<=L<=10000,1<=M<=100

         对于20%的数据,区域之间没有重合的部分;

         对于其它的数据,区域之间有重合的情况。

参考题解:

         本题可采用模拟法。

         用一个一维数组来存放马路各位置点当前的状态;设1表示当前位置的状态为树,0来表示当前位置的状态为地铁,根据题目所给的地铁区域,可以将对应的状态区域设置0,当处理完所有的地铁区间后,再重新对整条公路的状态遍历一遍,用一个计数变量记录状态为1的个数,即为问题所求。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值