欢迎辞

欢迎来到“笃志以砺,决起而飞”!
如果您是第一次来到本站,建议访问本站导读以便更快地了解本站。
如果您喜欢本站,欢迎订阅

 

2012 年二月
« 一  
 12345
6789101112
13141516171819
20212223242526
272829 

链表结构原理 与 数组模拟链表 的应用

链表(chain table)是我们最常使用的一种数据结构。在信息学竞赛中,经常需要使用链表作为遍历等操作使用的数据结构参与解题过程。这是因为链表具有自己的优点。用数组模拟链表,可以简化链表的使用,从而使链表更好的为我们服务。如果您已经知道链表数据结构的原理,可以跳过第一部分直接查看与数组模拟链表有关的内容。

[...]

复习:(转载)有向图的强连通分量求法

有向图的强连通分量

深度优先遍历是求有向图的强连通分量的一个有效方法,具体求解步骤如下: ⑴ 在有向图中,从某个顶点出发进行深度优先遍历,并按其所有邻接点的访问都完成(即出栈)的顺序将顶点排列起来。 ⑵ 在该有向图中,从最后完成访问的顶点出发,沿着以该顶点为头的弧作逆向的深度优先遍历,若此次遍历不能访问到有向图中所有顶点,则从余下的顶点中最后完成访问的那个顶点出发,继续作逆向的深度优先遍历,依次类推,直至有向图中所有顶点都被访问到为止。 ⑶ 每一次逆向深度优先遍历所访问到的顶点集便是该有向图的一个强连通分量的顶点集,若仅作一次逆向深度优先遍历就能访问到图的所有顶点,则该有向图是强连通图。 例如对图6-3(a)所示有向图,从顶点v1出发作深度优先遍历,在访问顶点v2后,顶点v2不存在未访问的邻接点从而成为一个“死结点”,如图(b) 所示。将v2从栈顶弹出后,再从顶点v1出发,在访问顶点v3 v4后,顶点v4不存在未访问的邻接点从而也成为“死结点”,如图(c)所示。将v4从栈顶弹出后,顶点v3不存在未访问的邻接点从而也成为“死结点”, 将v3从栈顶弹出后,顶点v1不存在未访问的邻接点从而也成为“死结点”,将v1从栈顶弹出,所以,得到出栈的顶点序列为v2, v4, v3, v1;再从最后一个出栈的顶点v1出发作逆向的深度优先遍历(逆着有向边的箭头方向),得到一个顶点集{ v1, v3, v4},如图(d)所示;再从顶点v2出发作逆向的深度优先遍历,得到一个顶点集{v2},如图(e)所示。这就是该有向图的两个强连通分量的顶点集。

Teacher 解题报告

本解题报告版权归 Ceeji 所有,转载请注明出处并保留本注释。 题目描述 老师坐在机房的教师机旁写程序,现在他想到出去接杯水。但是同学们在下面做题,他不想打扰同学们。 可 以把机房理解为一个N*M的方阵,老师或者一个同学占一个方格,当然有的方格是空着的,没有人。机房的出口也占一个方格,每一步都可以从一个方格走到和它 的边或者顶点连接的8个方格(边界处除外),为了不打扰同学们,他希望自己的路线上经过的格子离其他人的最近距离最远。

[...]

原始生物的遗传密码 解题报告

本解题报告版权归 Ceeji,转载请保留出处和本注释。 问题描述 原始生物的遗传密码是一个自然数的序列K=(a1,…,an)。原始生物的特征是指在遗传密码中连续出现的数对(l,r),即存在自然数i使得l=ai且r=ai+1。在原始生物的遗传密码中不存在(p,p)形式的特征。 求解任务: 请设计一个程序: •从文件PIE.IN中读入一系列的特征。 •计算包含这些特征的最短的遗传密码。 •将结果写到文件PIE.OUT中。 输入: 在输入文件PIE.IN的第一行是一个整数n ,表示特征的总数。在接下来的n行里,每行都是一对由空格分隔的自然数l 和r ,1 <= l,r <= 1000。数对(l, r)是原始生物的特征之一。输入文件中的特征不会有重复。 输出: 输出文件PIE.OUT的唯一一行应该包含一个整数,等于包含了PIE.IN中所有特征的遗传密码的最小长度。 样例输入: 12 2 3 3 9 9 6 8 5 5 7 7 6 4 5 5 1 1 4 4 2 2 8 8 6

样例输出: 15

注: PIE.IN中的所有特征都包含在以下遗传密码中: (8, 5, 1, 4, [...]

HAOI2006-2-2 聪明的猴子 解题报告

本解题报告版权归 Ceeji,转载请保留出处和本注释。 【问题描述】   在一个热带雨林中生存着一群猴子,它们以树上的果子为生。昨天下了一场大雨,现在雨过天晴,但整个雨林的地表还是被大水淹没着,部分植物的树冠露在水面上。猴子不会游泳,但跳跃能力比较强,它们仍然可以在露出水面的不同树冠上来回穿梭,以找到喜欢吃的果实。   现在,在这个地区露出水面的有N棵树,假设每棵树本身的直径都很小,可以忽略不计。我们在这块区域上建立直角坐标系,则每一棵树的位置由其所对应的坐标表示(任意两棵树的坐标都不相同)。 在这个地区住着的猴子有M个,下雨时,它们都躲到了茂密高大的树冠中,没有被大水冲走。由于各个猴子的年龄不同、身体素质不同,它们跳跃的能力不同。有的猴子跳跃的距离比较远(当然也可以跳到较近的树上),而有些猴子跳跃的距离就比较近。这些猴子非常聪明,它们通过目测就可以准确地判断出自己能否跳到对面的树上。 【问题】 现已知猴子的数量及每一个猴子的最大跳跃距离,还知道露出水面的每一棵树的坐标,你的任务是统计有多少个猴子可以在这个地区露出水面的所有树冠上觅食。 【输入要求】 输入文件monkey.in包括: 第1行为一个整数,表示猴子的个数M(2< [...]

第 1 页,共 2 页12