5-13 肿瘤诊断 (30分)
来源:互联网 发布:我国网络舆论积极作用 编辑:程序博客网 时间:2024/05/24 01:55
5-13 肿瘤诊断 (30分)
在诊断肿瘤疾病时,计算肿瘤体积是很重要的一环。给定病灶扫描切片中标注出的疑似肿瘤区域,请你计算肿瘤的体积。
输入格式:
输入第一行给出4个正整数:MM、NN、LL、TT,其中MM和NN是每张切片的尺寸(即每张切片是一个M\times NM×N的像素矩阵。最大分辨率是1286\times 1281286×128);LL(\le 60≤60)是切片的张数;TT是一个整数阈值(若疑似肿瘤的连通体体积小于TT,则该小块忽略不计)。
最后给出LL张切片。每张用一个由0和1组成的M\times NM×N的矩阵表示,其中1表示疑似肿瘤的像素,0表示正常像素。由于切片厚度可以认为是一个常数,于是我们只要数连通体中1的个数就可以得到体积了。麻烦的是,可能存在多个肿瘤,这时我们只统计那些体积不小于TT的。两个像素被认为是“连通的”,如果它们有一个共同的切面,如下图所示,所有6个红色的像素都与蓝色的像素连通。
输出格式:
在一行中输出肿瘤的总体积。
输入样例:
3 4 5 2
1 1 1 1
1 1 1 1
1 1 1 1
0 0 1 1
0 0 1 1
0 0 1 1
1 0 1 1
0 1 0 0
0 0 0 0
1 0 1 1
0 0 0 0
0 0 0 0
0 0 0 1
0 0 0 1
1 0 0 0
输出样例:
26
分析:广搜
#include<iostream>#include<queue>using namespace std;struct point {int first;int second;int third;};int a[61][1289][130];int t1,t2,t3,t4;int n,m;int l,t;int sum=0;int bfs(int i,int j,int k){ sum=0; queue<struct point >que; struct point p,te; que.push( {i,j,k}); while(que.size()) { sum++; p=que.front(); que.pop(); int temp1=p.first; int temp2=p.second; int temp3=p.third; a[temp1][temp2][temp3]=0; if (temp3-1>=0&&a[temp1][temp2][temp3-1]==1) { que.push({temp1,temp2,temp3-1}); a[temp1][temp2][temp3-1]=0; } if (temp3+1<n&&a[temp1][temp2][temp3+1]==1) { que.push({temp1,temp2,temp3+1}); a[temp1][temp2][temp3+1]=0; } if (temp2-1>=0&&a[temp1][temp2-1][temp3]==1) { que.push({temp1,temp2-1,temp3}); a[temp1][temp2-1][temp3]=0; } if (temp2+1<m&&a[temp1][temp2+1][temp3]==1) { que.push({temp1,temp2+1,temp3}); a[temp1][temp2+1][temp3]=0; } if (temp1-1>=0&&a[temp1-1][temp2][temp3]==1) { que.push({temp1-1,temp2,temp3}); a[temp1-1][temp2][temp3]=0; } if (temp1+1<l&&a[temp1+1][temp2][temp3]==1) { que.push({temp1+1,temp2,temp3}); a[temp1+1][temp2][temp3]=0; } } if(sum>=t) return sum; else return 0;}int main(){ int Sum=0; cin>>m>>n>>l>>t; for (int i=0;i<l;i++) { for (int j=0;j<m;j++) { for(int k=0;k<n;k++) { cin>>a[i][j][k]; } } } for (int i=0;i<l;i++) { for (int j=0;j<m;j++) { for(int k=0;k<n;k++) { if(a[i][j][k]) { Sum+=bfs(i,j,k); } } } } cout<<Sum; return 0;}
0 0
- 5-13 肿瘤诊断 (30分)
- 5-7 肿瘤诊断
- 肿瘤诊断
- 肿瘤诊断(PAT)
- 肿瘤诊断(三维BFS)
- 肿瘤诊断 L3-004
- L3-004. 肿瘤诊断
- L3-004. 肿瘤诊断
- L3-004. 肿瘤诊断
- L3-004. 肿瘤诊断
- L3-004. 肿瘤诊断
- PAT - 肿瘤诊断 - 三维简单广搜
- PAT L3-004. 肿瘤诊断 (BFS)
- C4top-肿瘤诊断(BFS-三维搜索)
- 用深度学习协助医生诊断肿瘤
- L3-004. 肿瘤诊断 天梯赛模拟题
- 团体程序设计天梯赛-L3-004. 肿瘤诊断
- 【题解】PAT.团体程序设计天梯赛.L3-004.肿瘤诊断
- 【九度OJ】题目1182:统计单词 解题报告
- 派队灯 Party Lamps
- 数字信号的产生和基本运算
- jQuery的ajax详解
- L2_007
- 5-13 肿瘤诊断 (30分)
- 完全卸载oracle
- jquery ajax向spring mvc controller中传值并接受及解析返回值
- java容器之Array转换List
- 洛谷 P1196 银河英雄传说
- React Native 之Alert
- Java遍历Map,List的不同方法,并比较其性能
- 基本知识
- 剑指offer 矩形覆盖