NOIP历年复赛提高组试题(2004-2013) 下载本文

2004~2013年NOIP复赛试题集(提高组)

3、关押罪犯 (prison.pas/c/cpp)

【问题描述】

S城现有两座监狱,一共关押着 N名罪犯,编号分别为 1~N。他们之间的关系自然也极不和谐。很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突。我们用“怨气值” (一个正整数值)来表示某两名罪犯之间的仇恨程度,怨气值越大,则这两名罪犯之间的积怨越多。如果两名怨气值为 c 的罪犯被关押在同一监狱,他们俩之间会发生摩擦,并造成影响力为 c 的冲突事件。

每年年末,警察局会将本年内监狱中的所有冲突事件按影响力从大到小排成一个列表,然后上报到 S 城 Z 市长那里。公务繁忙的 Z 市长只会去看列表中的第一个事件的影响力,如果影响很坏,他就会考虑撤换警察局长。

在详细考察了 N 名罪犯间的矛盾关系后,警察局长觉得压力巨大。他准备将罪犯们在两座监狱内重新分配,以求产生的冲突事件影响力都较小,从而保住自己的乌纱帽。假设只要处于同一监狱内的某两个罪犯间有仇恨,那么他们一定会在每年的某个时候发生摩擦。那么,应如何分配罪犯,才能使 Z 市长看到的那个冲突事件的影响力最小?这个最小值是多少?

【输入】

输入文件名为 prison.in。输入文件的每行中两个数之间用一个空格隔开。

第一行为两个正整数 N和 M,分别表示罪犯的数目以及存在仇恨的罪犯对数。

接下来的 M行每行为三个正整数 aj,bj,cj,表示 aj号和 bj号罪犯之间存在仇恨,其怨气值为 cj。数据保证 N b a j j≤ < ≤ 1 , 000 , 000 , 000 , 1 0 ≤ < jc ,且每对罪犯组合只出现一次。 【输出】

输出文件 prison.out 共1 行,为 Z 市长看到的那个冲突事件的影响力。如果本年内监狱中未发生任何冲突事件,请输出 0。

【输入输出样例】 prison.in prison.out 4 6

1 4 2534 2 3 3512 1 2 28351 1 3 6618 2 4 1805 3 4 12884

3512

【输入输出样例说明】

罪犯之间的怨气值如下面左图所示,右图所示为罪犯的分配方法,市长看到的冲突事件影响力是 3512(由2 号和3 号罪犯引发) 。其他任何分法都不会比这个分法更优。

【数据范围】

对于 30%的数据有 N≤ 15。

对于 70%的数据有 N≤ 2000,M≤ 50000。 对于 100%的数据有 N≤ 20000,M≤ 100000。

41

2004~2013年NOIP复赛试题集(提高组)

4、沙漠

在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠。该国的行政区划十分特殊,刚好构成一个 N行 M 列的矩形,如上图所示,其中每个格子都代表一座城市,每座城市都有一个海拔高度。

为了使居民们都尽可能饮用到清澈的湖水,现在要在某些城市建造水利设施。水利设施有两种,别为蓄水厂和输水站。蓄水厂的功能是利用水泵将湖泊中的水抽取到所在城市的蓄水池中。因此,只有与湖泊毗邻的第 1 行的城市可以建造蓄水厂。而输水站的功能则是通过输水管线利用高度落差,将湖水从高处向低处输送。故一座城市能建造输水站的前提,是存在比它海拔更高且拥有公共边的相邻城市,已经建有水利设施。

由于第 N 行的城市靠近沙漠,是该国的干旱区,所以要求其中的每座城市都建有水利设施。那么,这个要求能否满足呢?如果能,请计算最少建造几个蓄水厂;如果不能,求干旱区中不可能建有水利设施的城市数目。

【输入】

输入文件名为 flow.in。输入文件的每行中两个数之间用一个空格隔开。 输入的第一行是两个正整数 N和 M,表示矩形的规模。

接下来 N行,每行 M 个正整数,依次代表每座城市的海拔高度。

【输出】

输出文件名为 flow.out。

输出有两行。如果能满足要求,输出的第一行是整数 1,第二行是一个整数,代表最少建造几个蓄水厂;如果不能满足要求,输出的第一行是整数 0,第二行是一个整数,代表有几座干旱区中的城市不可能建有水利设施。

【输入输出样例 1】 flow.in flow.out 2 5

9 1 5 4 3 8 7 6 1 2 1 1

【样例 1 说明】

只需要在海拔为 9 的那座城市中建造蓄水厂,即可满足要求。

【输入输出样例 2】 flow.in flow.out 3 6

8 4 5 6 4 4 7 3 4 3 3 3 3 2 2 1 1 2 1

42

2004~2013年NOIP复赛试题集(提高组)

3

【样例 2 说明】

湖泊

8 4 5 6 4 4 7 3 4 3 3 3 3 2 2 1 1 2

沙漠

上图中,在 3 个粗线框出的城市中建造蓄水厂,可以满足要求。以这 3个蓄水厂为源头在干旱区中建造的输水站分别用 3种颜色标出。当然,建造方法可能不唯一。

【数据范围】

本题共有 10个测试数据,每个数据的范围如下表所示: 测试数据编号 能否满足要求 N M 1 不能 ≤ 10 ≤ 10 2 不能 ≤ 100 ≤ 100 3 不能 ≤ 500 ≤ 500 4 能 = 1 ≤ 10 5 能 ≤ 10 ≤ 10 6 能 ≤ 100 ≤ 20 7 能 ≤ 100 ≤ 50 8 能 ≤ 100 ≤ 100 9 能 ≤ 200 ≤ 200 10 能 ≤ 500 ≤ 500

对于所有的 10 个数据,每座城市的海拔高度都不超过 106。

43

2004~2013年NOIP复赛试题集(提高组)

全国信息学奥林匹克联赛(NOIP2011)复赛

提高组 Day1

一.

题目概况

二.

提交源程序文件名

三.

编译命令(不包含任何编译开关

四.

运行内存限制

注意事项:

1、 文件名(程序名和输入输出文件名)必须用英文小写。

2、 C/C++中函数main()的返回值类型必须是int,程序正常结束时的返回值必须是0。

3、 全国统一评测时采用的机器配置为:CPU P4 3.0GHz,内存1G,上述时限以此配置为准。 4、 特别提醒:评测在NOI Linux下进行。

1、铺地毯

【问题描述】

为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第

44