来几道Free Pascal递归类的题

不要太简单的。
2024-12-30 23:40:54
推荐回答(1个)
回答1:

智破连环阵 全国青少年信息学奥林匹克竞赛 (NOI) 竞赛原题
B国在耗资百亿元之后终于研究出了新式武器——连环阵(Zenith Protected Linked Hybrid Zone)。传说中,连环阵是一种永不停滞的自发性智能武器。但经过A国间谍的侦察发现,连环阵其实是由M个编号为1,2,…,M的独立武器组成的。最初,1号武器发挥着攻击作用,其他武器都处在无敌自卫状态。以后,一旦第i(1<=i< M)号武器被消灭,1秒种以后第i+1号武器就自动从无敌自卫状态变成攻击状态。当第M号武器被消灭以后,这个造价昂贵的连环阵就被摧毁了。
为了彻底打击B国科学家,A国军事部长打算用最廉价的武器——炸弹来消灭连环阵。经过长时间的精密探测,A国科学家们掌握了连环阵中M个武器的平面坐标,然后确定了n个炸弹的平面坐标并且安放了炸弹。每个炸弹持续爆炸时间为5分钟。在引爆时间内,每枚炸弹都可以在瞬间消灭离它平面距离不超过k的、处在攻击状态的B国武器。和连环阵类似,最初a1号炸弹持续引爆5分钟时间,然后a2号炸弹持续引爆5分钟时间,接着a3号炸弹引爆……以此类推,直到连环阵被摧毁。
显然,不同的序列a1、a2、a3...消灭连环阵的效果也不同。好的序列可以在仅使用较少炸弹的情况下就将连环阵摧毁;坏的序列可能在使用完所有炸弹后仍无法将连环阵摧毁。现在,请你决定一个最优序列a1、a2、a3…使得在第ax号炸弹引爆的时间内连环阵被摧毁。这里的x应当尽量小。
输入格式 Input Format
第一行包含三个整数:M、n和k(1<=M, n<=100,1<=k<=1000),分别表示B国连环阵由M个武器组成,A国有n个炸弹可以使用,炸弹攻击范围为k。以下M行,每行由一对整数xi,yi(0<=xi,yi<=10000)组成,表示第i(1<=i<=M)号武器的平面坐标。再接下来n行,每行由一对整数ui,vi(0<=ui,vi<=10000)组成,表示第i(1<=i<=n)号炸弹的平面坐标。输入数据保证随机、无误、并且必然有解。
输出格式 Output Format
一行包含一个整数x,表示实际使用的炸弹数。
样例输入
4 3 6
0 6
6 6
6 0
0 0
1 5
0 3
1 1
0 0
样例输出
2
http://www.vijos.cn/Problem_Show.asp?id=1018
Cross Logic
描述 Description
这是一个非常有趣的智力游戏,它规则简单而又变化多端。
游戏在一个m*n的方格里进行。游戏开始时所有的格子都是白色。游戏的目标是通过给出的线索按要求选择一些方格涂黑。这些线索是写在每一行和每一列前面的一些数字,它告诉了你该行或者该列应该出现的几组黑色方格各有多少个。
下面是一个简单的例子。在某一行中,线索给出了“2 1 4”三个数字,那么从这一行的某个位置起将依次出现两个相邻的黑色方格、若干白色方格、一个黑色方格、若干白色方格、四个连续的黑色方格,并且不再有其它的黑色方格。一种可能的情况如下图所示。

214□■■□□□■□■■■■

你需要选择一些方格涂成黑色,使得这些黑色方格满足所有行和所有列的要求。
例如,下图给出了某个谜题的一个可能的解(第二列没有数字表示这一列没有黑色方格)。

1
\2 12
1□□■□
11■□□■
12■□■■

给出这样一个谜题,请打印出该问题的解。

输入格式 Input Format
第一行有两个用空格隔开的正整数m,n,他们分别表示该谜题的方格列数和行数。
接下来m行从左至右描述了谜题的纵向信息。每一行有若干个数字,这些数字表示该列从上至下将会出现的连续黑色方格数。每一行用一个数字0作为结束。
接下来n行从上至下描述了谜题的横向信息。每一行有若干个数字,这些数字表示该行从左至右将会出现的连续黑色方格数。每一行用一个数字0作为结束。

对于30%的数据,m,n<=3;
对于50%的数据,m,n<=10;
对于100%的数据,m,n<=20。
输出格式 Output Format
将谜题的解打印出来。
每一个方格用两个字符表示。其中,一个白色方格用“ ”(两个空格)表示,一个黑色方格用“##”表示。因此,输出数据一共有n行,每行2m个字符。
我们保证输入数据有唯一解。
样例输入
4 3
2 0
0
1 1 0
2 0
1 0
1 1 0
1 2 0
样例输出
##
## ##
## ####
http://www.vijos.cn/Problem_Show.asp?id=1247