广东省青少年信息学奥林匹克竞赛决(一)
详细内容
如,一个迷宫结如下:
假定特修斯从AC之间通道出发,向C前进,而米牛从FH之间通道出发,向H前进。进入C之后,特修斯进入D,此时,米诺牛也进入G。然后,特修斯从D往G,米诺牛从G往D,这样,米诺牛会在通道里把特修斯杀死。
假如特修斯仍然从AC之间通道出发向C前进,而米诺牛从DG之间通道出发,向G前进。然后特修斯依次进入C、D、G,米诺牛依次进入G、E、F。特修斯进入G后,他发现米诺牛己经到过这里,于是他点了一根蜡烛放在洞里,然后直接从通往E的出口出去,而不是去H。特修斯到达E,米诺牛刚好到达H。米诺牛在从H到G时,发现了G中的火光,于是返回H,这时特修斯已经追到F。然后米诺牛尝试进入E,但仍然折回到H。这样,特修斯刚好赶到H,并把米牛杀死。
输入格式:
迷宫n(3<=n<=26)个石洞。文件一共有n+1行,前n行中,每行第一个大写字母表示某一个石洞,紧接着是一个分号,其后是一串大写字母,表示与其连接石洞(以逆时钟顺序给出)。每个石洞都至少与一个石洞相连,而且一定不会与自己相连。第n+1行以"@"开头,接着两对字母,第一对表示特修斯出发通道,第二对表示米诺牛出发通道。每一对字母都表示从第一个石洞前往第二个石洞。一开始修斯和米不会在同一个通道里。每一行开头和结尾都没有空格,字符之间也没有空格。
输出格式:
输出三种情况:
1、特修斯被米诺牛杀死,输出两行:
2、石洞1 石洞2
表示特修斯在从石洞1通往石洞2的通道里被杀死。
2、特修斯把米诺牛杀死,输出两行:
1、石洞
表示特修斯在该石洞里把米诺牛杀死。
3、谁也杀不了谁,输出一行:
0
输入输出举例:
样例一
Theseus.dat
Theseus.out
A:BCK
2
D G
D:BACG
F:HE
G:HED
B:AD
E:FGH
H:FEG
C:AD
@ACFH
样例二
Theseus.dat
Theseus.out
A:BCK
1
H
D:BACG
F:HE
G:HED
B:AD
E:FGH
H:FEG
C:AD
@ACDG
第三题 旅行〈Travel 〉
提交文件名:tEWeLeyte
问题描述:
GDOI队员们到Z镇游玩。Z镇是一个很特别的城镇,它有m+1条东西方向和n+1条南北方向的道路,划分成m*n个区域。Z镇的名胜位于这些区域内。从上往下数第i行,从左往右数第j列的区域记为D(i,j)。GDOI队员们预先对这m*n个区域打分V(i,j)(分数可正可负)。分数越高表示他们越想到那个地方,越低表示他们越不想去。为了方便集合,队员们只能在某一范围内活动。我们可以用(m1,nl)与(m2,n2)(m1<=m2,n1<=n2)表示这样的一个范围:它是这些区域的集合:{D(i,j)|m1<=I<=m2,n1<=j<=n2}。GDOI队员们希望他们活动范围内的区域的分值总和最大。
当然,有可能队员们一个地方也不去(例如,所有区域的分值都是负数。当然,如果某范串内的分值总和为零的话,他们也会去玩)。也有可能他们游览整个Z镇。你的任务是编写一个程序,求出他们的活动范围(m1,nl),(m2,n2〉。
输入格式:
输入数据存放在当前目录下的文本文件"travel.dat"中。数据有m+1行。第一行有两个数m,n(m,n定义如上)。其中,(1<=m<=250,1<=n<=250)。接下来的m行,每行n个整数,第i行第j个数表示分值V(i,j)(-128<=V(i,j)<=l27)。每两个数之间有一个空格。
输出格式:
答案输出到当前目录下的"travel.out"中,只有一行,分两种情况:
1.队员们在范围(m1,n1),(m2,n2)内活动,输出该范围内的分值。
2.队员们不想去任何地方,只需输出"NO"。
注意:不要有多余空行,行首行尾不要有多余空格。
输入输出举例:
样例一
样例二
Travel.dat
travel.out
Travel.dat
travel.out
4 5
146
2 3
NO
1 ?2 3 ?4 5
-1 ?2 ?1
6 7 8 9 10
-4 ?3 -6
-11 12 13 14 -15
16 17 18 19 20