NOIP复赛模拟试题I.doc

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

NOIP 复赛模拟试题(I )

1. 医院设置(hospital.cpp )

【问题描述】

设有一棵二叉树(如下閔,其中圈中的数字表示结点中居民的人口,圈边h 数字表示结 点编号。现在要求在某个结点上建立一个返院,使所奋佔W 所走的路程之和为最小,同吋约 定,相邻结点之

M 的距离为1。就木阁而言,若医院建在1处,则距离和 =4+12+2*20+2*40=136;若民院建在 3 处,

则距离和=4*2+13+20+40=81……

【输入格式(hospital.in )]

其中第一行一个整数n,表示树的结点数(n<=100)。接K 来的n 行 每行描述了

一个结点的状况,包含三个整数,整数之间川空格(一 个或多个)分隔,其中:第一个数为店民人口数;第二个数为左链 接,为0表示无链接;第三个数为右链接,为0表示无链接。

【输出格式(hospital.out )】

该文件只有一个整数,表示最小距离和。

【样例输入】 5 1323

400 12 4 5 20 0 0 40 0 0

【样例输出】

81

2. 而税(area.cpp )

【问题描述】

编程计算由“

* ”号围成的下列图形的面积。面积计算方法是统计*号所围成的闭合曲线中 水平线和垂直线交点的数目。如右K 图所示,在10*10的二维数组中,有“围住了 15个点, 因此面积为15。在输入中,为了方便起见使用“1”来代替右图中的“*”。。

【输入格式(area.in )】

°

输入数据保证仅冇一个10*10的01矩阵

° 【输出格式(area.out )】

o

0 0

0 0 一个数,表示面积 【样例输入】

0000000000

0000111000

0000100100 00000

10010 0010001010

()10101 0 0 1 0

010*******

0010000100 000

1111100

0000000000

【样例输出】

15

3.极值问题(number.cpp)

【问题描述】

已知m、n为整数,且满足下列两个条件:

①m、nG { 1 , 2 ,…,k},即Km, n^k

②(n2—m*n —m2) 2=1

你的任务是:编程输入正整数k (l

【输入格式(number.in)】

一个整数k

【输出格式(number.out)]

共两行,分别为和“n=....”

【输入样例】

1995

【输出样例】m=987 n=1597

4、牛的旅行(fun.cpp)

【问题描述】

农民John的农场里右很多牧区。柯的路径连接一些特定的牧区。一片所科连通的牧区称为一个

牧场。但是就目前而言,你能看到至少冇两个牧区不连通。现在,John想在农场里添加一条路径(注

意,价好一条)。对这条路径有这样的限制:一个牧场的直径就是牧场中敁远的两个牧区的距离(木

题中所提到的所冇距离指的都是敁短的距离)。考虑如下

的两个牧场,图1足奋5个牧区的牧场,牧区用表示,路径用直线表示。毎一个牧区都冇自己的坐标:图1所示的牧场的莨校人约是12.07106, 最远的

两个牧区是A和E,它们之间的最短路径是

A-B-E。这两个牧场都在John的

农场上。John将会在两个牧场中各选一个牧区,

然后用一条路径连起来,使得连通后这个新的

更大的牧场有最小的直径。注意,如果两条路径

中途相交,我们不认为它们是连通的。只有两条路径在M—个牧区相交,我们方认为它们是连通的。

现在请你编程找出一条

连接两个不同牧场的路径,使得连上这条路径这个更人的新牧场杏最小的茛径。

【输入格或(fun.in)】

第1行:一个整数N(l<=N<=150),表示牧区数;第2到N+1行:每行两个整数

X,Y ( 0 <= X, Y<= 100000 ),表示N个牧区的坐标。每个牧区的坐标都是不一样的。笫N+2行到第2*N+1行:毎行包拈N个数字(0或1 )表示一个对称邻接矩阵。例如,题目描述中的两个牧场的矩阵描述如下:

ABCDEFGH

A0 1000000

B 1 0 1 1 1000

C0 1 001000

DO 1 001000

E 0 1 1 10 0 0 0

F 0 0 0 0 0 0 1 0

G0*******

H00000010

输入数据屮至少包拈两个不连通的牧区。

【输出格式(fun.out)】

只冇一行,包括一个实数,表示所求答案。数字保留六位小数。

【输入样例】

8

10 10

15 10

20 10

15 15

20 15

30 15

25 10

3() 1()

01000000

10111000

01001000

01001000

01110000

00000010

00000101

00000010

【输出样例】

22.071068

相关文档
最新文档