poj 3620 简单深搜 连通分量
2016-04-13 20:54
274 查看
题目意思很简单:就是给定一个横向为N,纵向为M的田园,由于灾难有K个点形成了水池,问这些点组成最大的水池中包含有多少个小水池点
这题目对应的知识点是:连通分量
刚开始时候我自己写的代码没有注意到可以是环状的,导致有错误
于是借鉴别人代码改进了一些,并且深入理解了连通分量的精髓了
这题目对应的知识点是:连通分量
刚开始时候我自己写的代码没有注意到可以是环状的,导致有错误
于是借鉴别人代码改进了一些,并且深入理解了连通分量的精髓了
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int N,M,K; int visit[105][105]; int dx[]={1,-1,0,0}; int dy[]={0,0,1,-1}; int tempans; void dfs(int x,int y) { if(x<1||y<1||x>N||y>M||visit[x][y]==0) return ; visit[x][y]=0; tempans++; for(int j=0;j<4;j++) dfs(x+dx[j],y+dy[j]); } int main() { while(scanf("%d%d%d",&N,&M,&K)!=EOF) { int tempa,tempb; memset(visit,0,sizeof(visit)); for(int i=0;i<K;i++){ scanf("%d%d",&tempa,&tempb); visit[tempa][tempb]=1; } int ans=1; for(int i=1;i<=N;i++) for(int j=1;j<=M;j++) if(visit[i][j]){ tempans=0; dfs(i,j); ans=max(ans,tempans); } printf("%d\n",ans); } return 0; }
相关文章推荐
- python3不再支持mysqldb 请用pymysql和mysql.connector
- 机器学习简史
- Ceph Mutex Lock monitor
- 解决Cordova开发iOS的app界面被状态栏覆盖的问题
- 对Python装饰器的个人理解方法
- 对Python装饰器的个人理解方法 推荐
- leetcode——17——Letter Combinations of a Phone Number
- [leetcode]319. Bulb Switcher
- 一、对象导论(三)
- 20135320赵瀚青LINUX第八周学习笔记
- spark入门教程(3)--Spark 核心API开发
- mycat 启动失败 The specified size exceeds the maximum representable size
- C语言小程序
- hdu1358 KMP循环节
- mysqli的认识与应用
- BigDecimal计费
- 团队计划会议-01
- 转:mybatis3中@SelectProvider的使用技巧
- Error MSB6006: “mt.exe”已退出,代码为 31
- 关于取模和取余的区别。