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

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的个数,即为问题所求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值