NOIP复赛模拟试题I.doc
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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