pat1091 Acute Stroke
2015-02-26 19:18
288 查看
#include<cstdio> #include<iostream> #include<algorithm> #include<vector> #include<queue> #include<string> #include<cstring> #include<cmath> #include<map> #define ll long long using namespace std; int n,m,l; bool a[70][1300][130],vis[70][1300][130]; int dir[6][3] = {{0,0,1},{0,0,-1},{0,1,0},{0,-1,0},{1,0,0},{-1,0,0}}; struct node { int x,y,z; node(int _x,int _y,int _z) { x = _x; y = _y; z = _z; } }; queue<node*>q; int bfs(int x,int y,int z) { int ret = 0; vis[x][y][z] = true; node *tmp = new node(x,y,z); q.push(tmp); while(!q.empty()) { tmp = q.front(); ret++; q.pop(); for(int i = 0;i<6;i++) { int nx = tmp->x+dir[i][0]; int ny = tmp->y+dir[i][1]; int nz = tmp->z+dir[i][2]; if(nx<0||nx>=l||ny<0||ny>=n||nz<0||nz>=m)continue; if(!vis[nx][ny][nz]&&a[nx][ny][nz]) { vis[nx][ny][nz] = 1; q.push(new node(nx,ny,nz)); } } } return ret; } int main() { int t,i,j,k,ans; while(scanf("%d%d%d%d",&n,&m,&l,&t)!=EOF) { ans = 0; memset(vis,false,sizeof(vis)); for(k = 0;k<l;k++) for(i = 0;i<n;i++) for(j = 0;j<m;j++) scanf("%d",&a[k][i][j]); for(k = 0;k<l;k++) for(i = 0;i<n;i++) for(j = 0;j<m;j++) { int num =0; if(!vis[k][i][j]&&a[k][i][j])num = bfs(k,i,j); if(num>=t)ans+=num; } printf("%d\n",ans); } return 0; }
相关文章推荐
- PAT 1091. Acute Stroke (30) BFS
- Pat(A) 1091. Acute Stroke (30)
- PAT 1091. Acute Stroke (30) 3重方向并查集(其实非递归DFS也可以,,)
- PAT甲级1091 - Acute Stroke
- PAT (Advanced Level) Practise 1091 Acute Stroke (30)
- 【PAT】【Advanced Level】1091. Acute Stroke (30)
- PAT (Advanced Level) 1091. Acute Stroke (30)
- PAT 1091. Acute Stroke (30)
- 1091. Acute Stroke (30)【搜索】——PAT (Advanced Level) Practise
- 1091. Acute Stroke (30)-PAT甲级真题(广度优先搜索)
- PAT-A-1091. Acute Stroke (30)
- PAT--1091. Acute Stroke (30)(三维bfs)
- PAT 1091. Acute Stroke (30)
- PAT 1091. Acute Stroke (30)
- 【PAT】1091. Acute Stroke (30)
- PAT (Advanced Level) 1091. Acute Stroke (30) 3维DFS(10M数据时栈溢出)、3维BFS(AC)
- PAT-A | 1091 | Acute Stroke
- PAT - 甲级 - 1091. Acute Stroke (30)(三维BFS)
- PAT甲题题解-1091. Acute Stroke (30)-BFS
- PAT (Advanced Level) Practise 1091 Acute Stroke (30)