ZOJ 5716 查找照片中人的个数 枚举
2016-04-24 15:27
239 查看
点击打开链接
/////题意:让你查找照片中存在多少个人,照片中的人的某一部位可以被覆盖
//思路:从左到右暴力枚举每一点;
//如果该点是人的某一部分就开始枚举 并标记这个人的其他部分,
//此时只需要记录刚开始有多少个不是‘.’的个数就行了
/////题意:让你查找照片中存在多少个人,照片中的人的某一部位可以被覆盖
//思路:从左到右暴力枚举每一点;
//如果该点是人的某一部分就开始枚举 并标记这个人的其他部分,
//此时只需要记录刚开始有多少个不是‘.’的个数就行了
#include<bits/stdc++.h> using namespace std; int dy1[]={-1,0,1,-1,1}; int dx1[]={1,1,1,2,2}; int dy2[]={1,2,0,2}; int dx2[]={0,0,1,1}; int dy3[]={1,-1,1}; int dx3[]={0,1,1}; int dy4[]={-2,0}; int dx4[]={1,1}; int dy5[]={2}; int dx5[]={0}; char s[1000][1000]; int vis[1000][1000]; int n,m; int judge(int fx,int fy) { if(fx<0||fx>=n||fy<0||fy>=m) return 1; return 0; } int main() { char biao[]={'/','|','\\','(',')'}; int T; while(~scanf("%d",&T)) { while(T--) { scanf("%d%d",&n,&m); for(int i=0;i<n;i++) scanf("%s",s[i]); int num=0; for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { if(s[i][j]=='.') continue; num++; if(s[i][j]=='O') { for(int k=0;k<5;k++) { int fx=i+dx1[k]; int fy=j+dy1[k]; if(judge(fx,fy)) continue; if(biao[k]==s[fx][fy]) { s[fx][fy]='.'; } } } else if(s[i][j]=='/') { for(int k=0;k<4;k++) { int fx=i+dx2[k]; int fy=j+dy2[k]; if(judge(fx,fy)) continue; if(biao[k+1]==s[fx][fy]) { s[fx][fy]='.'; } } } else if(s[i][j]=='|') { for(int k=0;k<3;k++) { int fx=i+dx3[k]; int fy=j+dy3[k]; if(judge(fx,fy)) continue; if(biao[k+2]==s[fx][fy]) { s[fx][fy]='.'; } } } else if(s[i][j]=='\\') { for(int k=0;k<2;k++) { int fx=i+dx4[k]; int fy=j+dy4[k]; if(judge(fx,fy)) continue; if(biao[k+3]==s[fx][fy]) { s[fx][fy]='.'; } } } else if(s[i][j]=='(') { for(int k=0;k<1;k++) { int fx=i+dx5[k]; int fy=j+dy5[k]; if(judge(fx,fy)) continue; if(biao[k+4]==s[fx][fy]) { s[fx][fy]='.'; } } } s[i][j]='.'; } } printf("%d\n",num); } } return 0; }
相关文章推荐
- [模版] 带部分重构的KD_Tree
- 原理分析之二:框架整体设计
- 会话跟踪
- [Algorithm & NLP] 文本深度表示模型——word2vec&doc2vec词向量模型
- tar.gz 和 tar.bz2 详细解释
- Codeforces #591 D Chip 'n Dale Rescue Rangers(二分查找/转换参考系)
- Failure to transfer org.apache.maven.plugins:maven-war-plugin:pom:2.2 from https://repo.maven.apache
- Shiro学习之身份验证
- ubuntu下的Samba配置:使每个用户可以用自己的用户名和密码登录自己的home目录
- 工具类问题集合
- CentOS 7最小安装之后应该尽快做好的几件事情
- Python实现的KNN分类器
- A strange lift宽度搜索优先队列
- Linux是一个多用户多任务的操作系统
- Node.js入门实例程序
- bzoj3262: 陌上花开
- RTSP协议介绍 (转)
- hdu 5671 Matrix 标记。。。有点晕
- 设计模式
- ASP.NET MVC 网站开发总结(二)——一个或多个文件的异步或同步上传