信息学奥赛辅导未归类竞赛试题3.docx
- 文档编号:3538355
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:81
- 大小:295.58KB
信息学奥赛辅导未归类竞赛试题3.docx
《信息学奥赛辅导未归类竞赛试题3.docx》由会员分享,可在线阅读,更多相关《信息学奥赛辅导未归类竞赛试题3.docx(81页珍藏版)》请在冰豆网上搜索。
信息学奥赛辅导未归类竞赛试题3
未归类竞赛试题(HNOI试题)
201.逻辑表达式
求四元逻辑表达式的值。
四元逻辑指逻辑数据有四个不同的取值,记为0,1,2,3。
它们能进行与(*)、或(+)、非(-)三种运算,这三种运算分别定义如下:
(1)逻辑与
*
0
1
2
3
0
0
0
0
0
1
0
1
2
3
2
0
2
0
2
3
0
3
2
1
(2)逻辑或
+
0
1
2
3
0
0
1
2
3
1
1
2
3
0
2
2
3
0
1
3
3
0
1
2
(3)逻辑非
-
0
1
2
3
3
2
1
0
假设逻辑表达式运算满足下列规则:
(1)表达式中只允许的符号有:
*,+,-,(,)及大写单字母变量。
(2)运算优先级别:
第一级:
();第二级:
-;第三级:
*,+;另外,同级运算自左向右。
并且编程时不需判断逻辑表达式的正确性。
输入:
第一行是逻辑表达式;其余各行为逻辑表达式中的变量名和其对应值。
逻辑表达式的长度小于255个字符。
输出:
逻辑表达式的运算结果。
样例输入:
A+(B*-C)
A3
B1
C2
样例输出:
0
(此题为1999年湖南省赛试题)
202.多机调度问题
设有m个等待加工的零件每一个都必须由三台机器来共同完成,要确定出m个零件的加工顺序使得从第一个零件在第一台机器上开始加工到最后一个零件在最后一台机器上加工完毕之间所需的时间最短。
假设每个零件加工时间是已知的,并且当某零件在第一台机器上加工完毕时,如果第二台机器空着,则它就直接到达第二台机器上进行加工。
否则它必须排队且排在已有队末尾,第二、第三台机器加工零件的次序和第一台机器加工次序相同,并假设第三台机器上的最小加工时间至少和第二台机器上的最大加工时间一样大。
输入:
输入文件的第一行有一个正整数M,M表示需加工的零件数,M<=100;
以下M行每行代表一个零件在每台机器上所需的加工时间,Tij表示第i个零件在第j台机器上所需的加工时间,Tij<=100。
输出:
加工的最短时间。
样例输入:
5
455
226
838
1039
547
样例输出:
41
(此题为1999年湖南省赛试题)
(与两台机器调度问题类似,可采用动态规划。
)
203.数字划分
现有N个数字,要把这N个数字划分成K(K能整除N,设M=N/K)个集合S1,S2……,SK,每个集合均有M个数字。
集合Si中的数字按某种次序串接,构成一个正整数Li(I=1,2,……,K),问怎样划分和排列集合S1,S2,……,SK使得:
L1:
L2:
…:
LK=1:
2:
…:
K。
数据规模:
N≤200,K≤40,M≤6,每个数为[0,9]的整数。
注意:
集合Si中的数字按某种次序串接排列时,若前面几个为0,Li为去掉这几个0后的正整数。
例如:
若排列为000123,则认为它为正整数123。
数据输入:
第一行有N个数字;第二行为K的值。
数据输出:
按如下要求输出结果
(1)按Li由小到大分行输出所有的Si;
(2)每一行输出Si的由小到大排列;
(3)如果没有解,输出“NOSOLUTION”。
样例输入:
123456789
3
样例输出:
192384576
219438657
273546819
327654981
(此题为1999年湖南省赛试题)
204.淘汰赛
设有n个队参加某项体育竞赛(n≤100),竞赛委员会采用淘汰赛的方法来确定参加竞赛各队的名次。
例如:
8个队参加竞赛,那么首先进行全体参赛队的淘汰赛,结果如图1所示。
图1的第一次淘汰赛就确定了第一名是第3队,要确定第二名,则需要再安排一次淘汰赛确定第二名;由于有第1次淘汰赛的结果,我们可只安排第2,4,7队进行淘汰赛,它们之间的竞赛结果图2所示。
则第二次淘汰赛确定了第二名为第4队,如此继续安排淘汰赛,直到所有队的名次都确定好。
现假设:
(1)竞赛规则:
A队胜B队,B队胜C队,则A队必胜C队,A、C两不需进行竞赛。
(2)第1次安排所有的队进行淘汰赛,以后的淘汰赛安排应利用上几次淘汰赛的结果,安排最少的队的进行淘汰赛。
(3)每次淘汰赛至少确定一个队的名次,按第1,2,……名的顺序依次确定。
(4)每次淘汰赛的安排是:
首先按队序号由小到大进行排队,然后从队序号最小的两队开始两两配队比赛;如总队数为单数,则队序号最大的队直接进入下一轮比赛。
(5)比赛的结果用“0”或“1”表示:
“0”表示比赛中队序号小的队胜,“1”表示比赛中队序号大的队胜。
输入:
第一行为参赛的总队数,第二行为若干次淘汰赛的比赛结果
输出:
分两行输出,第一行按名次由小到大的顺序输出各已确定名次的各队的序号,第二行按序号的由小到大顺序输出参加下一次淘汰赛的各队的序号。
样例输入:
8
1000110100
样例输出:
34
27
(此题为1999年湖南省赛试题)
205.路由选择问题
在网络通信中,经常需要求最短路径。
但完全采用最短路径传输有这样一个问题:
如果最终在两终端点之间给出的最短路径只有一条。
则在该路径中的任一个节点或链路出现故障时,信号传输将面临中断的危险。
因此,对网络路由选择作了以下改进:
为任意两节点之间通信提供三条路径供其选择,即最短路径、第二最短路和第三最短路径。
第一最短路径的定义为:
给定一个不含负回路的网络D=(V,A,W),其中V={V1,V2,…,Vn},A为边集合,W为权集合,设P1是D中最短(V1,Vn)路。
称P1为D中最短(V1,Vn)路径,如果D中有一条(V1,Vn)路,P2满足以下条件:
(1)P2≠P1
(2)D中不存在异于P1的路P,使得
(3)W(P1)≤W(P)<W(P2)
则称P2为D的第二最短径。
第三最短路的定义为:
设P2是D中第二最短(V1,Vn)路径,如果D中有一条(V1,Vn)路P3满足以下条件:
(1)P3≠P2并且P3≠P1
(2)D中不存在异于P1,P2的路P,使得
(3)W(P2)≤w(p)<w(p3)
则称P3为D中第三最短(V1,Vn)路径。
现给定一有n个节点的网络,n<=30,求给定两点间的第一、第二和第三最短路径。
输入:
nSTmax
M11M12…M1n
M21……M2n
┆ ┆
Mn1……Mnn
其中,n为节点数,S为起点,T为终点,max为一代表无穷大的整数,Mij描述i到j的距离,若Mij=max,则表示从i到j无直接通路,Mii=0。
输出:
三条路径,每条路径占一行,形式为:
路径长度始点,…,终点
样例输入:
51510000
013100007
10000011000010000
1000010000014
10000100001000001
10000110000100000
样例输出:
412345
51345
61235
(此题为1999年湖南省赛试题)
206.公司搬迁
甲市一家大公司由M个部门组成,现要将它的几个部门迁出甲市,迁至其它城市。
除去因市政府鼓励这样做以外,还有用房便宜,招工方便等好处。
对这些好处可做出数量的估计,然而,疏散之后各部门间的通信费用将增加。
试求各个部门移至何市,使总费用最少或受益最大?
例如:
甲市一家大公司由5个部门组成,几个部门准备迁往乙或丙市。
对其好处数量的估计(万元)如下:
1
2
3
4
5
甲
0
0
0
0
0
乙
10
15
10
20
5
丙
10
20
15
15
15
疏散之后各部门间的年通信量为:
1
2
3
4
5
1
0
0
1000
1500
0
2
0
0
1400
1200
0
3
0
0
0
0
2000
4
0
0
0
0
700
5
0
0
0
0
0
注:
第一和第三部门的通信量1000包括第一到第三和第三到第一的通信量。
不同城市之间单位通信量的费用(元)为:
甲
乙
丙
甲
100
130
90
乙
130
50
140
丙
90
140
50
通过计算,得到以下结论:
将所有部门迁往丙市,收益为36万元。
正数表示收益,负数表示花费。
输入:
MN(M表示部门数,N表示城市数;M<=10,N<=10)
矩阵Sij(Sij表示第j个部门迁往第I个城市的收益,I<=N,j<=M,Sij<=20)
矩阵Tij(Tij表示第i个部门和第j个部门之间的年通信量,I<=M,j<=M,Tij<=2000)
矩阵Wij(Wij表示第i个城市和第j个城市之间单位通信量费用,I<=N,j<=N,Wij<=200)
三个矩阵之间用空行隔开。
输出:
公司年收益(元)
样例输入:
53
00000
101510205
1020151515
00100015000
00140012000
00002000
0000700
00000
10013090
050140
0050
样例输出:
360000
(此题为1999年湖南省赛试题)
207.整数方程研究
近年IOI专家们正在进行一项有关整数方程的研究,研究涉及到整数方程解集的统计问题,问题是这样的:
对任意的正整数N,我们有整数方程:
,该整数方程的一个解集{
}是使整数方程成立的一组正整数,例如{n,n,n,…,n}就是一个解集,在统计解集时,IOI专家把数据值相同但顺序不一样的解集认为是同一个解集。
例如:
当n=3时,我们把{2,3,6}和{3,6,2}认为是同一个解集。
任务:
对于一个给定的M,在最多只允许1个Xi大于M时,求出整数方程不同解集的个数。
数据输入:
一行,分别为N和M的值;其中N<=20;M<=100。
数据输出:
一个数,为不同解集的总个数。
样例输入:
310
样例输出:
3
(此题为1999年湖南选拔赛试题)
(提示:
样例的三组解为:
1/2+1/3+1/6、1/2+1/4+1/4、1/3+1/3+1/3)
208.学校选址
现要在n个(n<=30)自然村的某一个自然村中建立一个中心小学,通过调查,我们发现
(1)每个村庄分别有男女学生x1,x2,...xn和y1,y2,…,yn名。
(2)村庄之间的直接道路较复杂,这些道路可能是水平、上坡或下坡(为主)的道路,村庄之间的直接道路可能同时有上述三种道路中的任意两种,村庄之间的直接道路可以有0、1或2条。
(3)男学生在上学时,选择道路的原则是:
如果水平道路<上坡道路的1.5倍,则选择水平道路;如果水平道路<下坡道路的0.8倍,则选择水平道路;
(4)女学生在上学时,选择道路的原则是:
如果水平道路<上坡道路的2倍,则选择水平道路:
如果水平道路<下坡道路的1.5倍,则选择水平道路。
现在的任务是:
请你根据村庄的道路情况与各村的男女学生分配情况和选择道路的原则,选择一个最合适的村庄建立中心小学使所有学生每天上学(从家里到学校)所走的实际道路之和最短。
输入:
输入文件共n+2行,第1行为x1,x2,…,xn,第2行为y1,y2,…,yn,第i+2行为wi1,wi2,…..,win,数据之间用空格分开(I=1,2,3,….,n),wij用来表示I到村庄j的一条直接道路的长度,如wij=max,则表示此道路不存在,如wij=a+数值,则表明村庄i到村庄j的这条道路为上坡,后面的数值为长度;如wij=d+数值,则表明村庄I到村庄j的这条道路为下坡,后面的数值为长度;如wij=数值,则表明村庄I到村庄j的这条道路为水平,数值为长度;每条道路的长度小于<=9999。
输出:
输出文件为最佳的建校的村庄序号。
样例输入:
367
215
0a33
50d4
max50
样例输出:
3
(此题为1999年湖南选拔赛试题)
209.计算机网络建设
P城市刚刚建成了一个计算机网络,该网络的建立过程是这样的:
(1)政府将P城市化分为N个区域,为每个区域建立一个网络中心,编号依次为1,2,…,N。
通过网络中心为该区域的网络用户提供网络接入服务;
(2)在各个网络中心之间铺设了一些光纤通讯线路,这些通讯线路覆盖了所有的N个网络中心,即任意两个网络中心之间直接有通讯线路相连,或者通过与其它网络中心间接相连,使得信息可以在任意两个网络中心之间传输。
(3)由于建设经费有限,目前只铺设了N-1条光纤通讯线路。
(4)为减轻每个网络中心的信息传输负载,目前每个网络中心最多有3条光纤通讯线路与之相连。
为了提高该计算机网络的可靠性,政府下一步准备在网络中心之间新铺设一些光纤通讯线路,使得任何一个网络中心出现故障后,其它网络中心之间仍然可继续通讯。
由于铺设光纤线路的成本昂贵,政府希望新增加的光纤通讯线路数越少越好。
请你编一个程序,帮助政府的决策人员解决这一问题。
输入:
输入文件的第一行为正整数N(1<=N<=500),表示网络中心的个数。
第二行为一个整数M(0<=M<=N),以下M行,每行格式为:
JK1K2…Kp,表示网络中心J与网络中心K1,K2,…,Kp有光纤通信线路直接相连。
注意,由于连接是双向的,所以连接(J,K)被列出后,连接(K,J)就不再列出。
输出:
一行,为一个整数R,表示至少需新铺设R条光纤通讯线路才能满足要求。
样例输入:
4
1
1234
样例输出:
2
(此题为1999年湖南选拔赛试题)
210.火车调度
火车站内往往设有一些主干线分叉出去的铁路支路,供火车停靠,以便上下客或载货物。
铁路支路有一定长度,火车也有一定的长度,且每列火车的长度相等。
假设某东西向的铁路上,有一小站。
该站只有一条铁路支路可供火车停靠,并且该铁路支路最多能容纳M辆火车。
为了火车行驶的通畅,该站只允许火车自东方进站,自西方出站,且先进站的火车必须先出站,否则,站内火车将发生堵塞。
该火车站工作繁忙。
每天都有N辆自东方驶向西方的火车要求在预定时刻进站,并在站内作一定时间的停靠。
为了满足每辆进站火车的要求,小站的调度工作是井井有条的开展。
在小站每天的工作开始前,小站工作人员须阅读所有火车的进站申请,并决定究竟接受哪些火车的申请。
而对于不能满足要求的火车,小站必须提前通知他们,请他们改变行车路线,以免影响正常的铁路运输工作。
由于火车进站、出站的用时可以忽略不计,小站允许几辆火车同时进站或出站,且小站工作人员可以任意安排这些火车进站的先后排列次序。
小站的工作原则是尽量多的满足申请火车的要求。
请你编程,帮助工作人员考察某天所有火车的进站申请,计算最多能满足多少火车的要求。
数据输入:
第一行是两个正整数N和M(N<=60,M<=3);以下N行,每行是一辆火车的进站申请,用三个不大于65535的正整数Number、Arrivetime、Leavetime表示。
他们分别代表火车编号、火车要求进站的时间、火车要求出站的时间。
数据输出:
一个整数B,表示火车站最多能接纳的火车数量。
样例输入:
63
124
217
336
457
5810
6911
样例输出:
5
(此题为1999年湖南选拔赛试题)
211.反约瑟夫问题
著名的约瑟夫问题是这样描述的:
N个人排成一个圆圈,然后把这N个人按逆时针方向编号为1、2、…、N;随机产生一个正整数M,然后从编号为1的人开始按逆时针计数,当某人计数为M的倍数时,该人出队;如此循环下去,直到队列里只有一个人留下。
你现在的任务是:
对于输入文件的N和K,其中N为初始时约瑟夫圆圈中的人数,K为约瑟夫问题中最后留下的人的编号;请你确定一个最小能发生这种结果的正整数M。
输入:
为N和K,0<N≤1000
输出:
为最小的正整数M。
样例输入:
105
样例输出:
2
(此题为2000年湖南省赛试题)
(提示:
递推)
212.房间安排
某旅游地一个旅馆某一天接到了大量的客房定单,每张定单的内容包括房间数、开始使用时间和使用的天数。
为了便于宾馆管理和接待尽量多的旅客,宾馆经理不得不对这些定单进行安排,安排目的是用尽量少的房间来满足这些定单,以便空出更多房间用于安排其他流动客户。
宾馆经理花了几天时间来处理,但每次处理之后,他总觉得他的安排不是最最好的。
请你帮助宾馆经理处理这个问题。
为了便于计算,我们假设:
(1)安排房间的这一天所有的房间都是空的。
(2)宾馆的房间数是可以满足定单要求的,即假设房间数是无限的。
(3)每张定单被简化为房间数、开始时间和天数,开始时间为一个整数,表示距离现在的第几天。
例如,定单如为2、7、4。
表示旅客要求为从第7天开始的4天时间里使用2个房间(第7,8,9,10天这4天里用2个房间)。
(4)旅客一旦被安排再某个房间,在他的预定时间里是不允许换房间的。
任务:
帮助宾馆经理对这些定单进行有效的安排,使的为安排这些定单而使用的房间数最少。
输入:
第1行为正整数N,N为定单数(N≤10000);第2行到N+1行的每一行为一张定单,每行有3个正整数S、K和T,其中S为房间数、K为开始时间,T为天数。
注:
1≤S≤9,K和T在[1,60000]之间
输出:
为最少的房间数。
样例输入:
3
124
413
246
样例输出:
5
(此题为2000年湖南省赛试题)
213.最优乘车
为了简化城市公共汽车收费系统,某城市决定对大部分的公共汽车都采用一票制,但由于某些公共汽车所经过的停车站太多和路途太长,就采用两票制或多票制,经过这种票制改革后,人们坐公共汽车从一个站到另一个站时,就不得不选择一个好的乘车方案,以使他们的乘车费用最低。
为了方便于求出最佳的乘车方案,我们假设:
(1)采用一票制的公共汽车,无论从哪个站上车到哪个站下车,乘车费用为1;
(2)采用多票制的公共汽车,将设立某些站为关键站;那么,如果某人乘该路公共汽车从A站到B站时,不经过任何关键站的乘车费用为1,而经过K个关键站的乘车费用为K+1,所谓经过关键站是指:
乘该路公共汽车时,该关键站是其途中的一个站,但它不是上车站也不是下车站;例如,某路公共汽车经过1,2,3,4,*5,6,7,8,9;其中5是关键站,那么,从5站上车到9站下车或从2站上车到5站下车的费用为1,而从4站上车到6站下车的费用将是2。
(3)所有公共汽车都是双向行驶的,也即如果公共汽车经过起站点A和终站点B,那么你可以乘该公共汽车从A到B或从B到A。
你的任务就是:
对于输入文件中给出的公共汽车各停车站,和乘客的起点站A和终点站B,请你编程为乘客求出最佳乘车方案,使得他们费用最少。
输入:
第1行,为N、R、A和B,其中N为城市公共汽车站的总个数,这些停车站被统一编号为1、2、….、N;R为公共汽车站总数。
A为起点站的编号,B为终点站的编号。
(1≤N≤1000,1≤R≤300,每路公共汽车的最多站点数为20)。
第2行到R+1行的每一行为一路公共汽车经过的停车站编号,停车站编号的排列顺序是该路公共汽车按一个方向行车顺序依次经过的停车站,如为关键停车站,则其编号的前面有一个*。
输出:
从A站到B站所需的最少费用。
如果不能乘这些公共汽车从A到B,则输出-1。
样例输入:
124112
123*4567
1238
8459
765*9101112
样例输出:
3
(此题为2000年湖南省赛试题)
214.硬币找零
在现实生活中,我们经常遇到硬币找零的问题,例如在发工资时,财务人员就需要计算最少的找零硬币数,以便能从银行拿回最少的硬币数,并保证能用这些硬币发工资。
我们应该注意到,人民币的硬币系统是100,50,20,10,5,2,1,0.5,0.2,0.1,0.05,0.02,0.01元,采用这些硬币我们可以对任何一个工资数用贪心算法求出最少硬币数。
但不幸的是:
我们可能没有这样一个好的硬币系统,因此用贪心算法不能求出最少的硬币数,甚至有些金钱总数还不能这些硬币找零。
例如,如果硬币系统是40,30,25元,那么37元就不能用这些硬币找零;95元的最少找零数是3。
又如,硬币系统是10,7,5,1元,那么12元用贪心法得到的硬币数为3,而最少硬币数是2。
你的任务是:
对于任意的硬币系统和一个金钱数,请你编程求出最少的找零硬币数;如果不能用这些硬币找零,请给出一种找零方法,使剩下的钱最少。
输入:
第1行,为N和T,其中1≤N≤5000为硬币系统中不同硬币数;1≤T≤30000为需要用硬币找零的总数。
第2行,为N个数值不大于65535的正整数,它们是硬币系统中各硬币的面值。
输出:
如T能被硬币系统中的硬币找零,请输出最少的找零硬币数。
如T不能被硬币系统中的硬币找零,请输出剩下钱数最少的找零方案中的最少硬币数。
样例输入:
412
10751
样例输出:
2
样例输入:
339
302010
样例输出:
1
样例输入:
380
300200100
样例输出:
0
(此题为2000年湖南省赛试题)
215.非零数字
对于任意正整数M和N,试计算出阶乘和
的最末尾P个非零数字;其中k!
=1×2×3…×K。
所谓最末尾P个非零数字指的是:
从末尾第1个非零数字开始往高位数字计数的P个数字。
例如:
2314005345000的最末尾4个非零数字是5345,最末尾6个非零数字是005345,最末尾8个非零数字是14005345。
输入:
为一行,分别是N、M和P。
其中1≤N≤M≤65535;1≤P≤1000。
输出:
末尾P个数字。
样例输入:
10104
样例数出:
6288
(此题为2000年湖南省赛试题)
216.确保安全的文件运输
在计算机网络中,当接到一个传输文件任务时,我们的目标就是最快和最安全地把文件从发送地传输到目的地。
当然,要同时达到速度最快和最安全从理论上讲是不可能的。
为了达到这种目的,我们通常采用的方法是简化这些要求。
在一个简化的模型中,我们用安全系数来描述安全性:
模型的目的是:
用最快的速度安全地把文件传输到目的地,所谓安全地传输是指,预设一个安全系数K,文件传输目的地所经过路径的安全系数不小于K。
我们称这种简化模型称为确保安全的文件传输模型,为了方便求解,我们还对计算机网络系统做如的假设:
(1)计算机网络是一个无向图,其节点为服务器,如果服务器之间有一条电缆线连接,则相应的节点之间就有一条边。
为了求解的方便,我们对服务器进行编号,N个服务器将依次编号为1、2、…、N。
(2)安全系数只体现在电缆上,不同的电缆线,其安全系数也是不同的,一条路径的安全系数等于该路径上所有电缆线上安全系数的乘积。
(3)文件在一条电缆线上的传输时间是由电缆线的带宽和文件大小确定,有公式:
时间=文件大小÷带宽;文件在一条路径上的传输时间是文件在该路径上每条电缆线上的传输时间之和。
(4)每一条电缆线都是可以进行双向传送文件,而且同一条电缆线上两个方向上的带
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息学 辅导 未归类 竞赛 试题