Uva 572-Oil Deposits
来源:互联网 发布:西西里的美丽传说知乎 编辑:程序博客网 时间:2024/06/16 11:45
题目链接:
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=105&page=show_problem&problem=513
题目类型: 搜索
题意:统计字符’@’组成多少个八连块.如果两个字符’@’所在的格子相邻(横,竖或者对角线方向),就说它们属于同一个八连块.
样例输入:
1 1
*
3 5
@@*
@
@@*
1 8
@@**@*
5 5
**@
@@@
@*@
@@@*@
@@**@
0 0
样例输出:
0
1
2
2
分析:对每一个未被访问过的@的进行深度搜索,一次判断周围八个字符是否 是@,是@则继续深搜
Java代码:
import java.util.Scanner;/** * @author 许湘扬 * @email 547139255@qq.com * @detail Uva572 */public class Main{ public static char[][] graph=new char[100][100]; public static int[][] vis=new int[100][100]; public static int cnt,m,n; public static void main(String[] args) { Scanner cin=new Scanner(System.in); while(true) { //------------读取输入------------- m=cin.nextInt(); n=cin.nextInt(); if (m==0) break; cin.nextLine(); for(int i=0;i<m;i++) { String line=cin.nextLine(); graph[i]=line.toCharArray(); } //-----------初始化vis数组---------- for(int i=0;i<m;i++) for(int j =0;j<n;j++) vis[i][j]=0; cnt=0; for(int i=0;i<m;i++) { for(int j =0;j<n;j++) if(vis[i][j]==0 && graph[i][j]=='@') dfs(i,j,++cnt); } System.out.println(cnt); } } private static void dfs(int i, int j, int cnt2) { if(i<0 || i>=m || j<0 || j>=n) //跳出边界 return ; if (graph[i][j]=='*' || vis[i][j]>0) //不过不是@ 或者 @被访问过 return ; vis[i][j]=cnt2; //向周围深搜 for(int di=-1;di<=1;di++) for(int dj=-1;dj<=1;dj++) if (di!=0 || dj!=0 ) dfs(di+i, dj+j, cnt2); }}
阅读全文
0 0
- uva 572 - Oil Deposits
- uva 572 - Oil Deposits
- uva 572 - Oil Deposits
- uva-572-Oil Deposits
- UVa 572 - Oil Deposits
- UVa 572 - Oil Deposits
- UVa 572 - Oil Deposits
- uva 572Oil Deposits
- UVa 572Oil Deposits
- UVa 572 - Oil Deposits
- UVa 572: Oil Deposits
- uva 572 Oil Deposits
- UVa 572 - Oil Deposits
- uva 572 oil Deposits
- uva 572 - Oil Deposits
- uva 572 - Oil Deposits
- UVa 572 - Oil Deposits
- UVA 572 Oil Deposits
- spark在eclipse中遇到的问题及处理措施_标记下
- 设计模式学习
- Java连接FTP并且实现文件的上传和下载
- eq,neq,gt,lt等表达式缩写
- 关于安卓图片搜索
- Uva 572-Oil Deposits
- Unit 3.2 高级网络配置
- Hadoop和大数据开源工具推荐
- WPS 5月19号 C++实习 笔试题回顾
- 实现页面闪烁
- 【cc2541历程】ds18b20发送数值到App
- 微信分享时没有缩略图时的解决方案!
- Centos 6.9 在线YUM报错解决
- Java中this和super的用法总结