文件名称:连通问题 解题报告 ——2011软件大赛决赛 C组 本科第5题 原创By BossDong
文件大小:182KB
文件格式:ZIP
更新时间:2015-10-08 07:13:38
2011软件大赛 连通问题 本科第5题
连通问题 解题报告 ——2011软件大赛决赛 C组 本科第5题 原创By BossDong BMP是常见的图像存储格式。 如果用来存黑白图像(颜色深度=1),则其信息比较容易读取。 与之相关的数据: (以下偏移均是从文件头开始) 偏移:10字节, 长度4字节: 图像数据真正开始的位置。 偏移:18字节, 长度4字节: 位图的宽度,单位是像素。 偏移:22字节, 长度4字节: 位图的高度,单位是像素。 从图像数据开始处,每个像素用1个二进制位表示。 从图片的底行开始,一行一行向上存储。 Windows规定图像文件中一个扫描行所占的字节数必须是4字节的倍数, 不足的位均以 0 填充。例如,图片宽度为45像素,实际上每行会占用 8个字节。 可以通过Windows自带的画图工具生成和编辑二进制图像。 需要在“属性”中选择“黑白”,指定为二值图像。 可能需要通过 查看 | 缩放 | 自定义... 把图像变大比例一些, 更易于操作。 图像的左下角为图像数据的开始位置。白色对应1,黑色对应0 我们可以定义:两个点距离如果小于2个像素,则认为这两个点连通。 也就是说:以一个点为中心的九宫格中,围绕它的8个点与它都是连通的。 如:t1.bmp 所示,左下角的点组成一个连通的群体; 而右上角的点都是孤立的。 程序的目标是:根据给定的黑白位图,分析出所有独立连通的群体, 输出每个连通群体的面积。所谓面积,就是它含有的像素的个数。 输入数据固定存在in.bmp中。 如示例的in.bmp, 程序应该输出: 12 81 52 133 该输出表示:共有4个连通群体。 输出的连通体面积间的顺序可以随意。 请编程解决上述问题。 我们测试程序的时候,会使用不同的in.bmp文件。 要求考生把所有函数写在一个文件中。调试好后,存入与考生文件夹下对应题号的“解答.txt”中即可。 相关的工程文件不要拷入。 对于编程题目,要求选手给出的解答完全符合ANSI C标准,不能使用c++特性; 不能使用诸如绘图、中断调用等硬件相关或操作系统相关的API。
【文件预览】:
bmp图的连通问题
----ACM.ncb(59KB)
----ACM.plg(980B)
----ACM.opt(54KB)
----ACM.dsw(531B)
----ACM.dsp(4KB)
----main.cpp(2KB)
----Debug()
--------vc60.idb(33KB)
--------main.obj(6KB)
--------t1.bmp(162B)
--------ACM.pdb(385KB)
--------vc60.pdb(52KB)
--------in.bmp(366B)
--------ACM.ilk(193KB)
--------ACM.exe(168KB)