2002年全国青少年信息学(计算机)奥林匹克分区联赛复赛试题
(普及组 竞赛用时:3 小时)
题一 级数求和
(存盘名:NOIPC1)
[问题描述]
:
已知:Sn= 1+1/2+1/3+…+1/n。显然对于任意一个整数K,当n足够大的时候,Sn大于K。
现给出一个整数K(1<=k<=15),要求计算出一个最小的n;使得Sn>K。
[输入]
键盘输入 k
[输出]
屏幕输出 n
[输入输出样例]
输人:1
输出:2
题二 选数
(存盘名:NOIPC2)
[问题描述]
:
已知 n 个整数 x1,x2,…,
xn
,以及一个整数 k(
k
<n)。从 n 个整数中任选 k 个整数相加,可分别得到一系列的和。例如当 n=4,k=3,4 个整数分别为 3,7,12,19 时,可得全部的组合与它们的和为:
3+7+12=22 3+7+19=29 7+12+19=38 3+12+19=34。
现在,要求你计算出和为素数共有多少种。
例如上例,只有一种的和为素数:3+7+19=29)。
[输入]
:
键盘输入,格式为:
n , k (1<=n<=20,k<n)
x1,x2,…,
xn
(1<=xi<=5000000)
[输出]
:
屏幕输出,格式为:
一个整数(满足条件的种数)。
[输入输出样例]
:
输入:
4 3
3 7 12 19
输出:
1
题三 产生数
(存盘名:NOIPC3)
[问题描述]
:
给出一个整数 n(n<10^30) 和 k 个变换规则(k<=15)。
规则:
一位数可变换成另一个一位数:
规则的右部不能为零。
例如:n=234。有规则(k=2):
2-> 5
3-> 6
上面的整数 234 经过变换后可能产生出的整数为(包括原数):
234
534
264
564
共 4 种不同的产生数
问题:
给出一个整数 n 和 k 个规则。
求出:
经过任意次的变换(0次或多次),能产生出多少个不同整数。
仅要求输出个数。
[输入]
:
键盘输人,格式为:
n k
x1 y1
x2 y2
... ...
xn
yn
[输出]
:
屏幕输出,格式为:
一个整数(满足条件的个数):
[输入输出样例]
:
输入:
234 2
2 5
3 6
输出:
4
题四 过河卒
(存盘名:NOIPC4)
[问题描述]
:
如图,A 点有一个过河卒,需要走到目标 B 点。卒行走规则:可以向下、或者向右。同时在棋盘上的任一点有一个对方的马(如上图的C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点。例如上图 C 点上的马可以控制 9 个点(图中的P1,P2 … P8 和 C)。卒不能通过对方马的控制点。
棋盘用坐标表示,A 点(0,0)、B 点(
n,m
)(
n,m
为不超过 20 的整数,并由键盘输入),同样马的位置坐标是需要给出的(约定: C<>A,同时C<>B)。现在要求你计算出卒从 A 点能够到达 B 点的路径的条数。
[输入]
:
键盘输入
B点的坐标(
n,m
)以及对方马的坐标(X,Y){不用盘错}
[输出]
:
屏幕输出
一个整数(路径的条数)。
[输入输出样例]
:
输入:
6 6 3 2
输出:
17
2002年信息学奥赛NOIP普及组复赛C++真题