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