青少年编程知识记录 codecoming

2021年市北区程序设计竞赛试题(初中组)

1.开关灯(light.cpp)

【题目描述】

某实验室共有n盏灯,灯的编号为1~n,每盏灯的初始状态是关闭的。现在有m位学生,每位学生可以前去抽取一张带数字的卡片,其数字为Ai,然后依次将自己手中的数字卡片倍数编号的灯进行操作,开的灯将会被关闭,关闭的灯则会被重新打开,这个过程进行k轮后有多少盏灯最终状态为打开。

【输入描述】

第一行是三个整数n,m,k。

第二行是m个整数A

【输出描述】

一个整数,为最终为打开状态的灯的数量。

【样例输入】

10 10 1  1 2 3 4 5 6 7 8 9 10



【样例输出】

3



【样例解释】

第1位学生持有卡片上的数字为1,会把所有的灯都打开,第2位学生持有的卡片上数字为2,会把2的倍数的所有灯进行操作,开的灯将被关闭,关闭的灯则会重新打开,第3位~第10位同学依次按照这种方法操作,1轮结束后有3栈灯是打开的。

【数据范围】

80%的数据:1<=n<=1000,m<=1000,ai<=n



100%的数据:1<=n<=1000,m<=1000,ai<=n,k<=1000



2.阶乘问题(fac.cpp)

【题目描述】

给定一个正整数n,求出一个最小的整数m并使得m!的末尾连续的0的个数不小于n。

m!=1*2*3*4*...*m

【输入描述】

第一行n。

【输出描述】

一个整数m。

【样例输入】

5

【样例输出】

25



【数据范围】

30%的数据:n<=20

70%的数据:n<=100

100%的数据:n<=100000


3.有序数组(array.cpp)

【题目描述】

给定一个数组,其中每个元素均为1-2000之间的正整数,现在可以使用1到2000之间的整数区替换数组中的任意元素,替换完成后新数组构成的需求位不下降序列。要求替换次数尽可能少。如果替换次数相同,输出替换后的数组元素之和最小的方案。

【输入描述】

第一行为整数n。

第二行为n个正整数ai。

【输出描述】

n个正整数,为替换后的数组。

【样例输入】

3  10 8 7

【样例输出】

1 1 7



【数据范围】

30%的数据:n<=50

100%的数据:n<=2000


4.队列问题(lru.cpp)

【题目描述】

有一个大小为n的页面缓存队列,初始为空,当计算机访问页面时,若缓存队列没有该页面,则加入到缓存队列中,若队列已满,则将删除访问时间最远的页面。

有Q次询问,每次询问输入一个整型x,表示访问页面x。若缓存队列中有则输出yes,否则输出no。

【输入描述】

第一行,2个空格隔开正整数n,Q

以下Q行:每行是一个整型x。

【输出描述】

Q行,每行可能为yes或者no

【样例输入】

3 10  1  2  1  3  5  6  1  5  2  6



【样例输出】

no  no  yes  no  no  no  no  yes  no  no



【样例解释】

【数据范围】

60%的数据:n<=1000,Q<=1000;

100%的数据:n<=100000,Q<=100000

(adsbygoogle = window.adsbygoogle || []).push({});

作者:亿万年的星光 分类:题解目录 浏览: