肿瘤诊断(PAT)

2023-10-26

题目链接:https://www.patest.cn/contests/gplt/L3-004

一道很裸的bfs,一开始以为会超时,抱着试一试的心态交了一发竟然过了

#include<iostream>
#include<algorithm>
#include<map>
#include<cstring>
#include<queue>
using namespace std;
int m,n,l,t;
int a[100][1300][130],vis[100][1300][130];
struct node{
	int i,j,k;
};
int ans;
queue<node> q;
int bfs(int k,int i,int j,int s){
	while(!q.empty())
	q.pop();
	vis[k][i][j]=1;
	node temp;
	temp.i=i;
	temp.j=j;
	temp.k=k;
	q.push(temp);
	s++;
	while(!q.empty()){
		node tt=q.front();
		q.pop();
		//cout<<tt.k<<" "<<tt.i<<" "<<tt.j<<endl;
		if(tt.k-1>=0&&a[tt.k-1][tt.i][tt.j]==1&&vis[tt.k-1][tt.i][tt.j]==0){
			s++;
			vis[tt.k-1][tt.i][tt.j]=1;
		node temp;
		temp.i=tt.i;
		temp.j=tt.j;
		temp.k=tt.k-1;
			q.push(temp);
		}
		if(tt.k+1<l&&a[tt.k+1][tt.i][tt.j]==1&&vis[tt.k+1][tt.i][tt.j]==0){
			s++;
			vis[tt.k+1][tt.i][tt.j]=1;
			node temp;
		temp.i=tt.i;
		temp.j=tt.j;
		temp.k=tt.k+1;
			q.push(temp);
		}
		
		if(tt.i-1>=0&&a[tt.k][tt.i-1][tt.j]==1&&vis[tt.k][tt.i-1][tt.j]==0){
			s++;
			vis[tt.k][tt.i-1][tt.j]=1;
			node temp;
		temp.i=tt.i-1;
		temp.j=tt.j;
		temp.k=tt.k;
			q.push(temp);
		}
		if(tt.i+1<m&&a[tt.k][tt.i+1][tt.j]==1&&vis[tt.k][tt.i+1][tt.j]==0){
			s++;
			vis[tt.k][tt.i+1][tt.j]=1;
			node temp;
		temp.i=tt.i+1;
		temp.j=tt.j;
		temp.k=tt.k;
			q.push(temp);
		}
		
		
		if(tt.j-1>=0&&a[tt.k][tt.i][tt.j-1]==1&&vis[tt.k][tt.i][tt.j-1]==0){
			s++;
			vis[tt.k][tt.i][tt.j-1]=1;
			node temp;
		temp.i=tt.i;
		temp.j=tt.j-1;
		temp.k=tt.k;
			q.push(temp);
		}
		if(tt.j+1<n&&a[tt.k][tt.i][tt.j+1]==1&&vis[tt.k][tt.i][tt.j+1]==0){
			s++;
			vis[tt.k][tt.i][tt.j+1]=1;
			node temp;
		temp.i=tt.i;
		temp.j=tt.j+1;
		temp.k=tt.k;
			q.push(temp);
		}
	}
	//cout<<s<<endl;
	if(s<t)
	return 0;
	
	return s;
}


int main(){
	cin>>m>>n>>l>>t;
	for(int k=0;k<l;k++){
		for(int i=0;i<m;i++){
			for(int j=0;j<n;j++){
				cin>>a[k][i][j];
			}
		}
	}
	for(int k=0;k<l;k++){
		for(int i=0;i<m;i++){
			for(int j=0;j<n;j++){
				if(a[k][i][j]==1&&vis[k][i][j]==0){
					ans+=bfs(k,i,j,0);
				}
			}
		}
	}
	cout<<ans<<endl;
  
  return 0;
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

肿瘤诊断(PAT) 的相关文章

  • 【教程】Edraw Max使用教程:Edraw Max快速入门指南

    Edraw Max是一款简单易用的快速制图软件 帮助你轻松创建流程图 网络拓扑图 组织结构图 商业图表 工程图 思维导图 软件设计图和平面布局图等 大多数用户一般不会花太多时间详细阅读用户手册 因此我们编辑了这个快速入门指南 为帮助你尽快开

随机推荐

  • 前端 jQuery 如何将时间转换为yyyy-MM-dd格式的

    可以使用 JavaScript 内置的 Date 对象和其提供的方法来实现将时间转换为指定格式的字符串 具体可以使用以下代码 假设现在的时间是 2023年3月25日 const date new Date 创建一个 Date 对象 cons
  • INSTALL_FAILED_DUPLICATE_PERMISSION 安装失败的问题

    今天在开发的时候遇到一个问题app安装的时候android studio报 INSTALL FAILED DUPLICATE PERMISSION这个东西 然后把以前自己开发的一个项目卸载了 这个项目成功运行起来了 最后发现是我在做第二个项
  • 解决vscode输出中文乱码问题

    原因 输入编码和Windows系统输出编码方式不同 查看vscode编码方式 可以看到vscode中的默认编码方式是UTF 8 接下来通过cmd下的chcp命令查看系统的默认编码方式 936代表GBK 可以看到编码方式不同 解决方法 1 临
  • 基于微信小程序的垃圾废品回收类软件

    随着我国经济迅速发展 人们对手机的需求越来越大 各种手机软件也都在被广泛应用 但是对于手机进行数据信息管理 对于手机的各种软件也是备受用户的喜爱 废品回收类小程序被用户普遍使用 为方便用户能够可以随时进行废品回收类小程序的数据信息管理 特开
  • Pycharm 中文乱码解决,统一设置 UTF-8,再也不会乱码了

    背景 当我们在使用pycharm编写代码的时候 为了避免乱码问题 我们统一用utf 8编码 由于Python源代码也是一个文本文件 所以当你的源代码包含中文的时候 在保存源代码的时候就务必指定保存为UTF 8编码 但是有很的多的小伙伴还不知
  • VMware Workstation 16 Pro 安装及设置

    前言 VMware Workstation 是一个运行在window或Linux系统的软件 使开发人员能够在同一台 PC 上同时运行多个基于 x86 的 Windows Linux 和其他操作系统 本篇文章主要介绍VMware最新版本 VM
  • 键盘录入月份的值,输出对应的季节

    键盘录入月份的值 输出对应的季节 if switch 实现 输入 3 4 5 输出 春季 输入 6 7 8 输出 夏季 输入 9 10 11 秋季 输出 12 1 2 冬季 使用if选择结构语句 import java util Scann
  • Windows批处理获取指定格式的年月日和时间

    Windows批处理获取指定格式的系统年月日和时间 bat命令行输入获取系统当前日期的指定 date T 会打印出当前日期 2 但如果我们只想要日期中的year month day 可以自己定义设置显示日期 如下所示 date x y x的
  • 【概念】FISCO-BCOS证书进行Dapp开发需要注意什么?讲解config.ini,group.id.genesis,group.id.ini

    前言 FISCO BCOS是联盟链 一说到联盟链就少不了证书的存在 无论是节点证书还是加密证书都有着重要的作用 目前证书配置最多的是hyperledger fabric 这一节我们就简单的讲一下爱FISCO BCOS中的证书 证书 首先我们
  • 提升Python程序运行效率的方法总结

    使用Python中的timeit函数测试程序运行效率 def timeit stmt pass setup pass timer
  • python连接Mysql数据库,java读取python脚本实现动态传参以及增删改查等操作的个人学习记录心得

    目录 前言 一 项目的概述 二 Mysql数据库 1 导入数据 2 数据库增删改查 三 java读取python脚本 并实现动态传参 1 初期探索 2 具体实例 a 数据库的删除操作 b 数据库的添加操作 四 其他细节的问题 总结 前言 这
  • Docker安装MySQL

    签名 但行好事 莫问前程 文章目录 前言 一 查看镜像 二 拉取镜像 指定版本MySQL5 7 三 运行容器 数据挂载 四 测试连接 总结 前言 记录Docker安装MySQL的过程 容器数据卷 我们知道Docker通过镜像创建了容器 当容
  • 机器工厂——贪心

    题目描述 小T开办了一家机器工厂 在N N lt 10000 个星期内 原材料成本和劳动力价格不断起伏 第i周生产一台机器需要花费Ci 1 lt Ci lt 5000 元 若没把机器卖出去 每保养一台机器 每周需要花费S 1 lt S lt
  • Android Arouter 框架子类Autowired 报错的问题解决

    对于子类继承父类 父类再继承BaseActivity BaseActivity中使用inject 方法的情况下 需要在父类中写入 Autowired open lateinit var hardware HardWare 在子类中写入 Au
  • 两个小案例

    今天收获了两个小案例 其实对工作都很有启发 把案例和心得在这里记录下来 希望对别人也有帮助 案例1 测试人员在测试系统发现在系统A和系统B之间通过总线通讯 偶尔会出现timeout现象 反馈开发后 开发难以重现 根据简要分析后 认为是测试系
  • Eclipse的中文字体很小

    1 Preferences General Appearance Colors and Font 2 在右侧界面中选择 Basic 展开 找到 Text Font 双击打开 3 设置字体为 Courier New 即可
  • ORAN专题系列-22:O-RU全球前20的主要供应商调研报告

    目录 第1章 O RU新家族概述 第2章 O RU设备供应商详解 2 1 中国 大陆 香港 台湾 2 2 欧洲 2 3 印度 2 4 日本 2 5 韩国 2 6 美国 英国 第1章 O RU新家族概述 可以这样说 O RAN变化最大之一就是
  • 从caffe中新增layer(cpp版本)

    在caffe 中增加一个什么都不做的layer 不考虑forward backward算法 只考虑打通流程 英文教程 https github com BVLC caffe wiki Development developing new l
  • 【工业视觉-CCD相机和CMOS相机成像的本质区别】

    工业视觉 CCD相机和CMOS相机成像的本质区别 1 CCD的功耗高 CMOS的功耗低 2 CCD速度较CMOS慢 3 CCD的画质优于CMOS 4 CCD的高感画质低于CMOS 在学习工业视觉的起初 一般都是先去了解光源 镜头 相机等概念
  • 肿瘤诊断(PAT)

    题目链接 https www patest cn contests gplt L3 004 一道很裸的bfs 一开始以为会超时 抱着试一试的心态交了一发竟然过了 include