题⽬名称 数列变换 歌词匹配 棋盘删数游戏 ⼩ Z 的背包
题⽬类型 传统型 传统型 传统型 传统型
⽬录 array match game backpack
可执⾏⽂件名 array match game backpack
输⼊⽂件名 array.in match.in game.in backpack.in
输出⽂件名 array.out match.out game.out backpack.out
每个测试点时限 1.0 秒 1.0 秒 1.0 秒 2.0 秒
内存限制 256 MiB 512 MiB 512 MiB 512 MiB
测试点数⽬ 20 10 10 20
测试点是否等分 是 是 是 否
对于 C++ 语⾔ array.cpp match.cpp game.cpp backpack.cpp
对于 C++ 语⾔ -O2 -std=c++14
BCSP初中组编程能⼒题⽬样卷
提交源程序⽂件名
编译选项
T1 数列变换( array)
题⽬描述
⼩ Z 最初有⼀个⻓度为 的数列,第 个数为 。现在⼩ Z 对数列进⾏了 次操作,对于每次操作有如下两种形
式:
1. 1 x:表示向数列中添加⼀个数 。
2. 2 x:表示询问数列重排序后第⼀个⼤于 的数是什么,如果没有,则输出 -1。
输⼊格式
从 array.in ⽂件读⼊数据。
第⼀⾏输⼊⼀个正整数 ,代表最初数列的⻓度。
第⼆⾏输⼊ 个⾮负整数,第 个数为 ,两个数以空格隔开。
接下来输⼊⼀个正整数 ,表示⼩ Z 操作的次数。
接下来 ⾏,每⾏两个以空格隔开的整数 op x:
1. 若 op == 1,表示向数列中添加⼀个⾮负整数 ;
2. 若 op == 2,表示询问数列中第⼀个⼤于 的数是什么。
输出格式
输出到 array.out ⽂件。
对于所有 op == 2 的询问,输出此时数列中第⼀个⼤于 的数是什么,如果没有,则输出 -1。
样例
输⼊数据 1
输出数据 1
说明/提示
对于 的数据, ;
对于另外 的数据, ,其中 op == 1 的次数 。
对于 的数据, 。
T2 歌词匹配( match)
题⽬描述
⼩ Z 和⼩ Y 在唱歌,他们唱的歌曲⾮常奇怪,歌词都是⽤ abcd... 这共 个⼩写字⺟拼起来的。
具体地,⼩ Z 唱歌的歌词为 ,⼩ Y 唱歌的歌词为 。⼩ Z 会重复唱他的歌词 遍,记这 遍相同的歌词拼成
的⼀整⾸歌曲为 ,⼩ Y 会重复唱他的歌词 遍,记这 遍相同的歌词拼成的⼀整⾸歌曲为 。
⼩ Z 和⼩ Y 都是⼀秒钟唱⼀个词,如果在某⼀秒,他俩唱的词⼀样,我们就认为在这⼀秒他们的歌曲发⽣了⼀次匹
配。现在,保证他俩唱完整个歌曲的时间是相同的,即 和 的⻓度相同。
5
1 2 3 4 5
3
1 2
2 2
2 5
1
2
3
4
5
6
3
-1
1
2
现在问,当他俩唱完整⾸歌的时候,发⽣歌词匹配的次数是⼏次。
例如,⼩ Z 的歌词 "ab",他会唱 遍,⼩ Y 的歌词为 "baa",他会唱 遍
BCSP-X初中组编程能力题目样卷,bcsp真题,北京中小学信息学能力测评,c++题库