POJ 3620 Avoid The Lakes【DFS】
2015-08-13 11:21
316 查看
Avoid The Lakes
Time Limit : 2000/1000ms (Java/Other) Memory Limit : 131072/65536K (Java/Other)Total Submission(s) : 194 Accepted Submission(s) : 108
Problem Description
Farmer John's farm was flooded in the most recent storm, a fact only aggravated by the information that his cows are deathly afraid of water. His insurance agency will only repay him, however, an amount depending on the size of the largest "lake" on his
farm.
The farm is represented as a rectangular grid with N (1 ≤ N ≤ 100) rows and
M (1 ≤ M ≤ 100) columns. Each cell in the grid is either dry or submerged, and exactly
K (1 ≤ K ≤ N × M) of the cells are submerged. As one would expect, a lake has a central cell to which other cells connect by sharing a long edge (not a corner). Any cell that shares a long edge with the central cell or shares
a long edge with any connected cell becomes a connected cell and is part of the lake.
Input
* Line 1: Three space-separated integers: N, M, and K
* Lines 2..K+1: Line i+1 describes one submerged location with two space separated integers that are its row and column:
R and C
Output
* Line 1: The number of cells that the largest lake contains.
Sample Input
3 4 5 3 2 2 2 3 1 2 3 1 1
Sample Output
4【代码】[code]#include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> #include<queue> using namespace std; int dx[4]={0,0,-1,1}; int dy[4]={-1,1,0,0}; int map[110][110]; int vis[110][110]; int n,m,k,ans; bool check(int x,int y) { if(x<1||x>n||y<1||y>m) return 0; if(map[x][y]==0) return 0; if(vis[x][y]==1) return 0; return 1; } void dfs(int x,int y) { ans++; vis[x][y]=1; for(int i=0;i<4;i++) { int fx=x+dx[i]; int fy=y+dy[i]; if(check(fx,fy)) dfs(fx,fy); } } int main() { while(scanf("%d%d%d",&n,&m,&k)!=EOF) { memset(map,0,sizeof(map)); while(k--) { int x,y; scanf("%d%d",&x,&y); map[x][y]=1; } memset(vis,0,sizeof(vis)); int sum=0; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) { ans=0; if(map[i][j]) { dfs(i,j); sum=max(sum,ans); } } printf("%d\n",sum); } return 0; }
[/code]
相关文章推荐
- java程序由mysql转到sqlserver时在浮点数处理上遇到的错误
- UVA 11584 Partitioning by Palindromes 划分回文串 (Manacher算法)
- Java DecimalFormat 用法
- 实际iOS编程中遇到的自定义导航栏按钮,导致手势返回失效的解决方法
- 在spring官网下载jar包、源码、文档
- Bit Manipulation - Number of 1 Bits
- SpringMVC表单标签(6)
- Android结合volley的netWorkImageview实现图片文件缓存
- 安装samba后在init.d文件夹没有smb
- 安装samba后在init.d文件夹没有smb
- remove '^M' in shell script
- c# winform 模拟web post图片
- uva 10139 求n的阶乘能否整除m
- Android FragmentManage FragmentTransaction介绍(一)
- rsync 文件同步
- 轻量级java ee 中的相关技术概述
- 为Elasticsearch添加中文分词,对比分词器效果
- group by与having的使用方法
- [转载]请教各位高手光盘版或者U盘版的BT保存配置的问题
- 前端页面中iOS版微信长按识别二维码的bug与解决方案