#include<iostream>
#include<string>
#include<stack>
#include<vector>
#include<queue>
#include<cstdio>
using namespace std;
int max(int a,int b){
return a>b?a:b;
}
int a[110][110],vis[111][111];
int N,M,K;
int dfs(int x,int y){ //求得点块的大小 
int z=1;
if(a[x][y]==0) return 0;
vis[x][y]=1;
if(x-1>0&&!vis[x-1][y]) z+=dfs(x-1,y);
if(y-1>0&&!vis[x][y-1]) z+=dfs(x,y-1);
if(x+1<=N&&!vis[x+1][y]) z+=dfs(x+1,y);
if(y+1<=M&&!vis[x][y+1]) z+=dfs(x,y+1);
return z;
}

struct Node{int x,y;};
int dx[]={0,-1,0,1};
int dy[]={-1,0,1,0};
int bfs(int X,int Y){
int i,val=0;
Node now;
now.x=X , now.y=Y;
queue<Node>q;
q.push(now);
vis[X][Y]=1;
while(!q.empty()){
Node u=q.front();q.pop();
val++; //计数
for(i=0;i<4;i++){ //四个方向的查找
Node v;
v.x=dx[i]+u.x;
v.y=dy[i]+u.y;
if(v.x<1 || v.x>N) continue;
if(v.y<1 || v.y>M) continue;
if(!vis[v.x][v.y]&&a[v.x][v.y]==1){
q.push(v); //加入队列
vis[v.x][v.y]=1; //标记为访问过
}
}
}
return val;
}
int main(){
cin>>N>>M>>K;
int i,j;
for(i=0;i<K;i++){
int x,y;
scanf("%d%d",&x,&y);
a[x][y]=1;
}
int ans=0;
for(i=1;i<=N;i++){
for(j=1;j<=M;j++){
if(a[i][j]==1&&!vis[i][j]){
ans=max(ans,bfs(i,j));
}
}
}
printf("%d\n",ans);
return 0;
}

poj3620的更多相关文章

  1. ACM训练计划建议(写给本校acmer,欢迎围观和指正)

    ACM训练计划建议 From:freecode#  Date:2015/5/20 前言: 老师要我们整理一份训练计划给下一届的学弟学妹们,整理出来了,费了不少笔墨,就也将它放到博客园上供大家参考. 菜 ...

  2. 【POJ水题完成表】

    题目 完成情况 poj1000:A+B problem 完成 poj1002:电话上按键对应着数字.现在给n个电话,求排序.相同的归一类 完成 poj1003:求最小的n让1+1/2+1/3+...+ ...

  3. poj练习题的方法

    poj1010--邮票问题 DFSpoj1011--Sticks dfs + 剪枝poj1020--拼蛋糕poj1054--The Troublesome Frogpoj1062--昂贵的聘礼poj1 ...

  4. ACM学习大纲

    1 推荐题库 •http://ace.delos.com/usaco/ 美国的OI 题库,如果是刚入门的新手,可以尝试先把它刷通,能够学到几乎全部的基础算法极其优化,全部的题解及标程还有题目翻译可以b ...

  5. ACM训练计划建议(转)

    ACM训练计划建议 From:freecode#  Date:2015/5/20 前言: 老师要我们整理一份训练计划给下一届的学弟学妹们,整理出来了,费了不少笔墨,就也将它放到博客园上供大家参考. 菜 ...

  6. ACM训练大纲

    1. 算法总结及推荐题目 1.1 C++ STL • STL容器: set, map, vector, priority_queue, queue, stack, deque, bitset• STL ...

  7. ACM学习大纲(转)

    1 推荐题库 •http://ace.delos.com/usaco/ 美国的OI 题库,如果是刚入门的新手,可以尝试先把它刷通,能够学到几乎全部的基础算法极其优化,全部的题解及标程还有题目翻译可以b ...

随机推荐

  1. Vim默认保存文件路径的设置

    在_vimrc文件中添加: exec 'cd ' . fnameescape('F:\') F:\ 换成自己所需的路径,这样在vim中新建文件后直接用命令“ :w 文件名”就可以自动保存到已定义的路径 ...

  2. POJ-3261-Milk Patterns(后缀数组)

    题意: 给定一个字符串,求至少出现k 次的最长重复子串,这k 个子串可以重叠. 分析: 先二分答案,然后将后缀分成若干组. 不同的是,这里要判断的是有没有一个组的后缀个数不小于k. 如果有,那么存在k ...

  3. POJ 2289 Jamie's Contact Groups(多重匹配+二分)

    题意: Jamie有很多联系人,但是很不方便管理,他想把这些联系人分成组,已知这些联系人可以被分到哪个组中去,而且要求每个组的联系人上限最小,即有一整数k,使每个组的联系人数都不大于k,问这个k最小是 ...

  4. 数据结构:HDU 2993 MAX Average Problem

    MAX Average Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  5. Delphi 总结操作Excel

    定义变量 Excelid:variant; 1.创建OLE对象 try Excelid:=CreateOleObject( 'Excel.Application' ); except on Excep ...

  6. QQ空间自动发广告解决方法

    最近空间好多人QQ都中了毒.每天我都有几十个好友刷空间话费.流量广告! QQ空间自动发广告的原因: 最近使用了刷赞或者其他QQ外挂软件(有些开发者或破解者会在这样的软件上留后门,请自己判断). 或者最 ...

  7. 简单的FOLLOW集演示程序

    /* * 该程序用于计算某个非终结符的 FOLLOW 集合 * RexfieldVon * 2013年6月30日16:02:47 */ #include <stdio.h> #includ ...

  8. JavaScript笔记(一),

    加法函数 javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显 //调用:accAdd(arg1,arg2) //返回值:arg1加上arg2的精确结果 function accA ...

  9. Ubuntu中使用终端运行Hadoop程序

    接上一篇<Ubuntu Kylin系统下安装Hadoop2.6.0> 通过上一篇,Hadoop伪分布式基本配好了. 下一步是运行一个MapReduce程序,以WordCount为例: 1. ...

  10. Java注解的简单了解

    部分信息来自<Thinking In Java> 注解也成为元数据.什么是元数据?就是“关于数据的数据” 注解为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻非常方便 ...