作业帮 > 综合 > 作业

一道很水的ACM题,我打算用一维数组做、求教下。是北大的题如果做请告诉我。我追加积分 用纯C语言不要C++

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/19 12:13:40
一道很水的ACM题,我打算用一维数组做、求教下。是北大的题如果做请告诉我。我追加积分 用纯C语言不要C++
2677:肿瘤检测 时间限制: 1000ms 内存限制: 65536kB 描述 一张CT扫描的灰度图像可以用一个N*N(0
一道很水的ACM题,我打算用一维数组做、求教下。是北大的题如果做请告诉我。我追加积分 用纯C语言不要C++
其实这道题用二维数组比一维数组要好写得多。因为要判断四邻域连通与否,就有一个跨行的问题。 那么,对于原来二维数组上的点,就得用pic[i*N+j]来取值。这样给编程速度上造成麻烦,也没有太大地改进运行效率。用简单的种子填充法去做这道题是非常好的。当然也可以考虑一行一行往下顺序扫(因为题目明确规定肿瘤只有一个,所以哪怕在一行上有两段肿瘤区域是分开的,那也只能说明这个肿瘤是一个非规则几何的肿瘤,而不是两个肿瘤。) 面积的判断非常简单,边读取边统计小于等于50的点数即可。 肿瘤周长的判断个人认为最好的办法就是对每一个是肿瘤的点检查上下左右四个点(当然可以设置优化标记,比如前者是肿瘤了,可以不用检测左边的点,或者上面那行对应点是肿瘤了可以不检测上面的点。) 根据这个思路不难给出代码了吧?