说明:1.程序采用黑箱测试,请选手务必按题目中要求的程序名、文件名书写上缴;
2.程序中不宜使用CRT单元;
3.每位选手附上一份用记事本写的个人档案,文件名取为NAME.TXT,档案格式如下(必须按格式书写):
姓名:具体名字
性别:男或女
地点:所在的省、市、地区
学校:所在的学校
年级:所在的年级
指导教师:指导教师的名字
EMAIL:指导教师的EMAIL地址或本人E-mail
发送答卷时请在邮件主题请写选手的中文姓名和学校名。
例如:陈 平 广东信阳中学。
4.收答卷及个人档案邮件地址为:sgoi@shuguang.net;彩虹7号
(Rainbow.pas)
X市是一个重要的军事基地,在这个基地中有一支名为"彩虹7号"的特别部队。
每个队员都有一个固定独立的编号
,他们的职责就是完成部队交给他们的任务,每个任务同样都有固定独立的编号N(1<=N<=10)。在执行任务的过程中,为了保证任务的保密性和队员的安全,队员和队员之间的联系将必须由特别部队所提供的一种保密频段交互设备进行。
每个队员都需要一个身份验证口令进入系统,由于队员所执行的任务都是涉及国家安全或者极高机密的活动,如果队员使用的口令出现错误,他们将付出无法估计的代价。特别部队的队员都是层层筛选的精英人才,所以不希望发生这样的事情。因此队员必须牢记口令的设置方法:
口令S的内容满足:
。显然,S有可能也很有可能是一个无理数,所以限定S为一个实数,它包含整数部分和小数部分,不包含小数点(即0.1将视作01)。口令的长度M(10<=M<=50),将根据任务的难度而有所不同。
编程任务:
给定X,N,M。计算口令的内容S。
输入(rainbow .in):
文件输入,文件有且仅有一行包含3个整型数X,N,M,每个数之间以一个空格符隔开。
输出(rainbow.out):
文件输出,文件有且仅有一行,为S的结果。
样例输入:
2 2 10
样例输出:
1414213652
注意事项:
口令的最后一位请使用去尾法保留,不要使用四舍五入法保留。文件请不要包含多余的空格和换行。
控 制 棋
(game.pas)
古时候有一高人发明了一种二人对弈的游戏――控制棋。游戏规则如下:在一个棋盘上有N个点,两点之间如画有一条线则表示两点相连,两点之间只有一条边,且一个点不能与自己相连。两人轮流把起棋子放在点上,如果一点被放上棋子,则这一点和与之相连的点就都被控制了。不能把棋子放在被控制的点上。初始时,棋盘上的点都没有被控制。当轮到某一方下而无法落子时,另一方得胜。
由于控制棋变化多端,从发明到现在没有一个人可以根据棋盘的初始状态来判定先手是否必胜。请你编程来解决这个千古难题。
输入(game.in):
输入文件第一行为一个整数K(1<=K<=25),表示文件包含K个版块。每个版块由若干行组成,版块间有一空行隔开,每个版块描述一个棋盘,棋盘用一个邻接矩阵A表示。A[i,j]=1表示点i和点j间有边相连,如果A[i,j]=0则示不相连。每个版块的第一行包括整数(1<=N<=30),N是棋盘的顶点数。以下N行为一个棋盘。
输出(game.out):
包含K行,每行为一个数。若对于第i个棋盘,先手必胜,则输出'1',否则输出'0'。
样例输入:
3
4
0 1 0 0
1 0 1 1
0 1 0 0
0 1 0 0
4
0 1 0 1
1 0 1 1
0 1 0 0
1 1 0 0
2
0 0
0 0
样例输出:
1
1
0
足球赛
(football.pas)
公元5000年,x市考古队发现了一份三千年前的文献,上面记录了公元2000年的一场足球盛事:曼联、罗马、拜仁、皇马、里昂这五支当时世界的五大联赛的冠军球队之间将进行地球总冠军争夺战。由于足球是当时的第一大运动,因此,这份文献对了解当时世界各地的体育发展水平乃至社会生活状况都有着重要意义。遗憾的是,由于年代久远,文献的比分部分被污损了。于是,x市的专家们想方设法地要恢复它。
据考证得知,那次比赛为单循环赛制,每支球队都与其他四支球队各赛一场,一共10场比赛(注意:这与当时流行的主客场制不同,因此这份文献更有特殊意义)。每场比赛的结果:赢球的一方积3分,输球的一方不得分;平局则双方各积一分。文献残余的部分显示了每支球队的总积分,总进球数与总失球数。专家们希望可以找出一种可能的每场比分方案,使之与统计结果相符。
例如,发现的一份文献如下:

则一种可能的比分方案为:

输入:
每个输入数据有五行,从上到下依次代表曼联、罗马、拜仁、皇马、里昂这五支球队的统计数据。每行三个数据,分别为该支球队的总积分,总进球数,总失球数。
输出:
每个输出数据为一个5*5的矩阵,矩阵中的每个元素用x:y的形式表示。第i行第j列(i<>j)的元素代表在i,j两支球队的比赛中"第i支球队的进球数:第j支球队的进球数",相邻两元素间用一个空格隔开(球队按输入顺序从1到5编号),第i行第i列用"-:-"表示。矩阵应当是对称的。
注意,由于各支球队实力都很强,可以认为 每支球队的每场失球数不超过5个。
样例输入:
Football.in
9 14 10
9 6 5
7 11 9
3 7 9
1 6 11
样例输出:
Football.out
--- 0-1 4-1 5-4 5-4
1-0 --- 1-5 1-0 3-0
1-4 5-1 --- 3-2 2-2
4-5 0-1 2-3 --- 1-0
4-5 0-3 2-2 0-1 ---
最大利润
(gain.pas)
问题描述:
X市的一家化工厂最近购买了一批重量为n克的化学原料。这种原料可以进行A,B两种化学实验,每种实验有其固定的利润及损耗率。已知,1克的原料做 A实验可得利润a元,但有p的损耗; 同样,1 克的原料做B实验可得利润b元,但有q的损耗。
一次全体实验定义为:将手头现有的全部原料一部分做A实验,另一部分做B实验。其利润为做A 实验的总利润与做B实验的总利润之和。
于是一个问题摆在面前,若化工厂准备做m次全体实验,那么如何安排每次实验,才能使得总利润最大呢?请你编程解决这个问题。
输入(gain.in):
输入文件gain.in 仅1行,依次为:n,m,a,b,p,q
其中n,m,a,b为整数,且0输出(gain.out):
输出文件gain.out仅一行,为最大利润,并保留五位小数。
样例输入:
3 100 300 500 0.3 0.6
样例输出:
79000.00000
炼金术
(che.pas)
问题描述:
X市最近新出土了一批文物,其上刻着一些奇怪的符号,经过专家的论证,这些符号是古代"炼金术士"留下的。所谓"炼金术士"就是古代化学家,他们将泥土、沙子、木炭以及一切他们认为有用的东西堆在炉子里烧,企图从中得到金子。我们应该感谢他们,黑火药就是他们发明的。
专家们一致认为,这些符号是"炼金术士"们工作过程中记下的试验数据,包括他们将哪些东西放进了炉子,以及打开炉子后,又得到了什么。经过长年累月的研究,"炼金术士"们认为,物质的变化过程与物质的量是有关系的,如果知道了这些关系,就可以节省不少原料。但是他们使用了一些非常特殊的符号来表示各种原料的比例。为了进一步了解古代"炼金术士"的工作情况,专家们想要知道这些反应中所需的物质的量的比例到底是怎样的。专家们已经列出了每个反应的化学方程式。当然,它们都是未被配平过的。你可以假设,输入的化学方程式所表示的反应类型将只有两种:复分解反应、氧化还原反应。也就是说,你只要解决这两种反应类型的化学方程式配平问题即可。
输入(che.in):
每个测试点只包括一行,就是待配平的化学方程式。输入的化学方程式将符合化学的书写规范,不必判错。
输出(che.out):
只有一行,依次输出反应物、生成物前所配的系数。两个数之间用一个空格分隔,行尾不要有多余的空格。若无法配平,则输出"No solution"。
样例:
FeCl3+NaOH=Fe(OH)3+NaCl
输出:1 3 1 3
输入:H2O+SO2+I2=H2SO4+HI
输出:2 1 1 1 2
输入:CO2+H2O=C6H12O6+H2O+O2
输出:No solution
约束条件:
输入的方程式长度不超过255。
反应物、生成物的总个数不多于100。
元素种类总数不多于100。
方程式中的元素都可以在元素周期表中找到。
测试数据和答案中的整数不会超过 。
括号嵌套的最大深度不超过10。
附:提供元素周期表
('Ac','Ag','Al','Am','Ar','As','At','Au','B','Ba','Be','Bh','Bi','Bk', 'Br','C','Ca','Cd','Ce','Cf','Cl','Cm','Co','Cr','Cs','Cu','Db','Dy', 'Er','Es','Eu','F','Fe','Fm','Fr','Ga','Gd','Ge','H','He','Hf','Hg', 'Ho','Hs','I','In','Ir','K','Kr','La','Li','Lr','Lu','Md','Mg','Mn', 'Mo','Mt','N','Na','Nb','Nd','Ne','Ni','No','Np','O','Os','P','Pa', 'Pb','Pd','Pm','Po','Pr','Pt','Pu','Ra','Rb','Re','Rf','Rh','Rn','Ru', 'S','Sb','Sc','Se','Sg','Si','Sm','Sn','Sr','Ta','Tb','Tc','Te','Th', 'Ti','Tl','Tm','U','Uub','Uun','Uuu','V','W','Xe','Y','Yb','Zn','Zr')