【120718测试】NOIP模拟题
NOIP模拟题
(3小时完成)
题目一览
题目名称 |
NBA工资 |
迷宫 |
最大数列 |
安装服务器 |
程序文件名 |
NBA.pas |
maze.pas |
sequence.pas |
server.pas |
输入文件名 |
NBA.in |
maze.in |
sequence.in |
server.in |
输出文件名 |
NBA.out |
maze.out |
sequence.out |
server.out |
时限 |
1秒 |
1秒 |
1秒 |
1秒 |
分值 |
100分 |
100分 |
100分 |
100分 |
NBA工资
(NBA.pas/c/cpp)
【问题描述】
NBA为了控制球员工资的总额,推出了奢侈税制度。
NBA球队的工资总额一旦超过奢侈税起征点,超出的部分就将按1比1征税。也就是说每超出1美元,就要支付给联盟1美元。比如说起征点是6000万美元,而球队的工资总额是7000万美元,那么球队在工资上将要花费8000万美元。
球队老板为了在新赛季中进行球员交易,因此需要得知球队当前的阵容在下个赛季需要花费多少的工资(包括奢侈税)。
请你根据当前球队的工资表来计算如果使用当前球员,那么这个赛季将花费多少钱。
【输入文件】
输入文件NBA.in,第一行是一个整数,表示奢侈税起征点,第二行是球队的名字,第三行是一个整数n,表示这只球队有n(8<=n<=18)名球员,以下n行,每行包括球员的名字和工资,用空格分开,球员的名字又两个单词组成,分别表示名和姓,中间用空格分开。工资是一个不超过4000万的整数。
【输出文件】
输出文件NBA.out包括一行,这一行只包含一个整数,为这个赛季将花费的工资。
【样例输入1】
61700000
Houston
15
Tracy McGrady 15694250
Juwan Howard 5900400
Dikembe Mutombo 5811043
YaoMing 5594906
Stromile Swift 5000000
David Wesley 4950000
Moochie Norris 4200000
Vin Baker 3850000
Bob Sura 3520000
Mike James 3300000
Charlie Ward 1873300
Jon Barry 1800000
Luther Head 975600
Ryan Bowen 900498
Toraye Braggs 719373
【样例输出1】
66478740
【样例输入2】
61700001
CHICAGO
16
Antonio Davis 13925000
Tyson Chandler 11375000
Eddy Curry 11375000
Ben Gordon 3610200
Eric Piatkowski 2833333
Andres Nocioni 2805000
Chris Duhon 2799383
Kirk Hinrich 2513880
Luol Deng 2443920
Jannero Pargo 895248
Eddie Basden 398762
Othella Harrington 6300000
Frank Williams 1724441
LawrenceFunderburke 1029873
Adrian Griffin 965185
Jared Reiner 641748
【样例输出2】
69571945
这一题无算法可言,送分的
http://www.cnblogs.com/oijzh/archive/2012/08/20/2647275.html
迷宫
(maze.pas/c/cpp)
【问题描述】
电脑游戏中有许多令人头疼的迷宫,会花费玩家相当多的时间,你通过秘笈获得了游戏迷宫的地图,你希望找到最短的一条走出迷宫的道路,并且想知道一共有多少条最短的道路,但是由于地图非常庞大,所以你不能在短时间找出这些道路,因此,你需要编写一个程序来找出这些最短的道路,并且统计一下一共有多少条这样的道路。
例如,对于下图所示的迷宫:
|
|
|
S |
|
X |
X |
|
|
X |
X |
|
E |
|
|
|
X表示障碍物,不可以通过,S表示迷宫的入口,E表示迷宫的出口。显然,从入口到出口至少需要走6步,而长度为6的道路一共有两条。
【输入文件】
输入文件maze.in,第一行是一个整数n(1 ≤n ≤ 25),表示迷宫是一个n×n的矩阵。以下n行每行有n个字符来描述地图,“.”表示可以通过,“X”表示不可以通过,“S”表示迷宫的入口,“E”表示迷宫的出口。(注意:所有的字母均为大写)。
【输出文件】
输出文件maze.out包括两行,第一行包含一个整数,表示从入口到出口走的最短距离。第二行包含一个整数,表示最短路径的调数,答案保证小于231。
【样例输入】
4
…S
.XX.
.XX.
E...
【样例输出】
6
2
最容易想到的算法的深搜,但肯定要超时,所以只能递推
http://www.cnblogs.com/oijzh/archive/2012/08/20/2647273.html
最大数列
(sequence.pas/c/cpp)
【问题描述】
有一个N项的数列a1, a2 ... aN (|ai| <=10000, 1 <= i <= N)。S定义为
你的任务是求S的值,即为求一个序列的两个不相交子序列的最大和。
【输入文件】
输入文件sequence.in的第一行是一个整数N(2 <= N <= 100000),表示数列的项数。第二行有n个整数,用空格分隔,第i个整数Ai(|Ai| <=10000)是第i位数。
【输出文件】
输出文件sequence.out包括一行,这一行只包含一个整数,就是S。
【样例输入】
5
-5 9 -5 11 20
【样例输出】
40
【数据规模】
对于30%的数据,保证有n <= 80;
对于70%的数据,保证有n <= 10000;
对于全部的数据,保证有n <= 100000。
很容易想到枚举算法,其实本质就是动规
http://www.cnblogs.com/oijzh/archive/2012/08/20/2647267.html
安装服务器
(server.pas/c/cpp)
【问题描述】
政府计划建立一个大型的服务器中心,为各个城市提供网络服务。每个城市对网络的需求量是不一样的,而需求量越大,对线路的要求也就越高,线路的成本也就越高。因此需要选择合适的地点修建。每个城市用一个二维整数坐标表示,两个点之间的距离定义为水平距离+垂直距离,即a,b两点间距离为D(a,b)=|Xa-Xb|+|Ya-Yb|。对于每个城市,线路的费用为:费用=距离×人口×城市的网络需求程度。总的费用为各个城市的费用的总和。请你找出最适合安装服务器(既总费用最小)的整数坐标(不一定要在城市上)。
【输入文件】
输入文件server.in第一行有一个正整数N(N ≤ 100000),表示城市的数量。后面的n行每行描述一个城市,每行有四个整数x,y,p,k分别表示城市的坐标,人口数,以及网络需求程度。(0 < x, y < 2^31;p≤600, k ≤30)
【输出文件】
输出文件server.out包含一行。在这一行中,应当包含两个整数x,y表示最优解的坐标,如果有多个最优解,那么输出x最小的,如果有x相同,那么输出y最小的。
【样例输入】
5
2 3 5 3
2 1 100 30
2 2 1 1
3 2 7 6
1 1 4 30
【样例输出】
2 1
【数据规模】
对于30%的数据,保证有N <= 500,x, y <= 100;
对于50%的数据,保证有N <= 5000;
对于全部的数据,保证有N <= 100000。
一个带全中位数,而且非常简单,只需就出点,不需计算
http://www.cnblogs.com/oijzh/archive/2012/08/20/2647262.html