百练OJ:3865和2677:肿瘤检测
来源:互联网 发布:华为手机网络诊断 编辑:程序博客网 时间:2024/05/18 18:53
题目链接:肿瘤检测
描述:一张CT扫描的灰度图像可以用一个N*N(0<N<100)的矩阵描述,矩阵上的每个点对应一个灰度值(整数),其取值范围是0-255。我们假设给定的图像中有且只有一个肿瘤。在图上监测肿瘤的方法如下:如果某个点对应的灰度值小于等于50,则这个点在肿瘤上,否则不在肿瘤上。我们把在肿瘤上的点的数目加起来,就得到了肿瘤在图上的面积。任何在肿瘤上的点,如果它是图像的边界或者它的上下左右四个相邻点中至少有一个是非肿瘤上的点,则该点称为肿瘤的边界点。肿瘤的边界点的个数称为肿瘤的周长。现在给定一个图像,要求计算其中的肿瘤的面积和周长。
输入:输入第一行包含一个正整数N(0<N<100),表示图像的大小;接下来N行,每行包含图像的一行。图像的一行用N个整数表示(所有整数大于等于0,小于等于255),两个整数之间用一个空格隔开。
输出:输出只有一行,该行包含两个正整数,分别为给定图像中肿瘤的面积和周长,用一个空格分开。
设计思路:
首先将图像扩大一圈,目的是为了将图像的边界的点的检测条件与非图像边界的点的检测条件相同,之后对每个点进行检测,设置计数器,最终输出结果即可
代码如下:
#include <iostream>using namespace std;int main(){ int n,c=0,s=0; cin>>n; int lists[n+2][n+2] ; for(int k=0;k<n+2;k++){ lists[k][0]=255; lists[0][k]=255; lists[k][n+1]=255; lists[n+1][k]=255; } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cin>>lists[i][j]; } } for (int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if(lists[i][j]<=50){ s++; if(lists[i+1][j]>50||lists[i-1][j]>50|| lists[i][j+1]>50||lists[i][j-1]>50){ c++; } } } } cout <<s<<" "<<c << endl; return 0;}
阅读全文
0 0
- 百练OJ:3865和2677:肿瘤检测
- 百练3865:肿瘤检测
- 百练---肿瘤检测---2677
- 百练 肿瘤检测
- 百练_2677:肿瘤检测
- 百练OJ:2713:肿瘤面积
- 百练noi 19: 肿瘤检测
- POJ 百炼 保研机试 2677:肿瘤检测
- 3865:肿瘤检测
- poj 2677: 肿瘤检测
- 百练---肿瘤面积---2713
- 百练2713:肿瘤面积
- 百练noi18:肿瘤面积
- 肿瘤检测
- 肿瘤检测
- 肿瘤检测
- 题目:肿瘤检测
- 19:肿瘤检测
- 用卷积公式求概率密度时确定积分区间
- 非线性结构——树
- poj2763(树链剖分)
- 远程桌面(服务器)的链接步骤
- 大数除法之估商法源码
- 百练OJ:3865和2677:肿瘤检测
- 移动UI设计:基本类型屏幕
- 选择排序算法(node)
- Android okhttp3来进行网络数据请求和发送
- 多进程multiprocessing-进程池Pool
- java 猜拳小游戏
- J_link修复实操教程
- linux-2 正则表达式
- Android 学习之Bitmap位图的旋转