1091. Acute Stroke (30)
来源:互联网 发布:善领dsa p57数据升级包 编辑:程序博客网 时间:2024/05/16 01:29
1091. Acute Stroke (30)
考察bfs
#include <iostream>#include <queue>using namespace std;const int Maxi=128,Maxj=1286,Maxk=60;int Matrix[Maxi][Maxj][Maxk];int n,m,l,t,ans=0;int dx[6]={1,0,0,-1,0,0};int dy[6]={0,1,0,0,-1,0};int dz[6]={0,0,1,0,0,-1};struct node{ int x,y,z;};bool israng(int x,int y,int z){ if(x>=0&&x<n&&y>=0&&y<m&&z>=0&&z<l) return true; return false;}void bfs(int x,int y,int z){ int ret=0; node temp; temp.x=x;temp.y=y;temp.z=z; queue<node> q; q.push(temp);Matrix[x][y][z]=0;++ret; while(!q.empty()) { node cur=q.front(); q.pop(); for(int i=0;i<6;++i) { int nx=cur.x+dx[i]; int ny=cur.y+dy[i]; int nz=cur.z+dz[i]; if(israng(nx,ny,nz)&&Matrix[nx][ny][nz]) { Matrix[nx][ny][nz]=0;++ret; temp.x=nx;temp.y=ny;temp.z=nz; q.push(temp); } } } if(ret>=t) ans+=ret;}int main(){ cin>>m>>n>>l>>t; for(int k=0;k<l;++k) for(int j=0;j<m;++j) for(int i=0;i<n;++i) cin>>Matrix[i][j][k]; for(int k=0;k<l;++k) for(int j=0;j<m;++j) for(int i=0;i<n;++i) if(Matrix[i][j][k])bfs(i,j,k); cout<<ans; return 0;}
0 0
- 1091. Acute Stroke (30)
- 1091. Acute Stroke (30)
- 1091. Acute Stroke (30)
- 1091. Acute Stroke (30)
- 1091. Acute Stroke (30)
- 1091. Acute Stroke (30)
- 1091. Acute Stroke (30)
- 1091. Acute Stroke (30)
- 1091. Acute Stroke (30)
- 1091. Acute Stroke (30)
- 1091. Acute Stroke(30)
- 1091. Acute Stroke (30)
- 1091. Acute Stroke (30)
- 1091. Acute Stroke (30)
- 1091. Acute Stroke (30)
- 1091. Acute Stroke (30)
- 1091. Acute Stroke (30)
- 1091. Acute Stroke (30)
- python重温设计模式===>结构型
- Linux系统中“动态库”和“静态库”那点事儿
- 驱动与固件的区别
- JMeter工具简单介绍
- linux下混杂设备
- 1091. Acute Stroke (30)
- 101. Symmetric Tree
- HDU 5983 Pocket Cube (简单模拟)
- Centos下rabbitmq安装配置
- 2016总结----剑未配妥,出门已是江湖。
- Tomcat7配置虚拟路径-部署多应用-自动部署
- JVM 参数详解
- 欢迎使用CSDN-markdown编辑器
- Mac平台更改MySQL的root密码