英特尔® 线程挑战赛 2008 年 3 月 题目 匀称图形
茶禅如水 2008-03-05 10:04:04 不知道为什么题目改了?原来好像是 矩阵转置吧,o(∩_∩)o...
大家有兴趣的快参与吧!
http://softwarecontests-zho.intel.com/threadingchallenge/
图形是由一组节点(或顶点)和一组边组成的结构;每条边连接两个节点,并由这两个节点确定。Solomon W. Golomb 创造了“匀称图 (graceful graph)”一词,来指代可以“ 以匀称比例编号”的任何图形。本月的问题是:输入一个图形,确定该输入是否为匀称图;如果是,则输出图形节点和边的匀称编号。
图形的匀称编号具有以下属性:
每个节点都标有一个独特的非负整数
每条边都标有节点标签之差的绝对值
边的编号必须是介于 1 和总边数之间的唯一值
某些匀称图采用单个节点编号方式,有些可能采用多个节点编号方式。您的程序只需要列出节点和边的一种匀称编号方式。
关于输入文件的描述:在应用程序开始执行后,将输入文件的名称以命令行参数的形式赋予应用程序。该文件包括许多行,其中含有图形中要分析和标记的边。输入节点用两个介于“A”到“Z”之间的大写字母表示。一个输入行包含四个大写字母,第一、二个字母表示第一 个节点,第三、四个字母表示另一个节点,从而确定相应边。“文件结束”表示图形输入结束。
输出:输出采用标准输出形式。应当有相应说明指出输入图形是不是匀称图;如果是,则提供节点的匀称编号和边的相关标签。匀称图的节点应当按照节点名称以升序输出;边应当按照边标签以升序输出(不需要输出与输入时一样的边名称)。
输入示例:(包括四个节点的完整图形)
AABB
AAKK
AAZZ
ZZBB
BBKK
KKZZ
输出示例:
此图采用匀称编号方式。
节点:
AA 0
BB 6
KK 4
ZZ 1
边:
AAZZ 1
BBKK 2
KKZZ 3
AAKK 4
BBZZ 5
AABB 6
有关该解决方案的直观表示,请参阅随附的 jpeg 文件。其链接地址如下:
Graceful K4.jpg
Graceful Graphs - Input and Output Examples.txt
计时:如果不想将 I/O 时间记入应用程序执行时间,则应包括具有以下作用的计时函数调用:当读取输入文件后立即启动,在开始打印最终结果(和内部执行时间)前一刻停止。否则,裁判将使用时钟时间。