G - 小晴天老师系列——可恶的墨水瓶

Time Limit: 2000/1000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others)
Submit Status

Problem Description

小晴天老师正在备课,这时,可恶的墨水瓶突然自己打翻了!悲剧发生了!小晴天的备课稿都被墨水弄脏了。。。。

不过小晴天很乐观~这时他把他的一张纸分成n*m个格子,其中有一些格子被墨水涂黑了,有的没有。那么小晴天想知道,最大的一块联通的墨水块占多少个格子呢?

所谓的联通的即两个格子至少有一个公共顶点。

Input

多组数据,首先是一个正整数t(t<=20)

对于每组数据,先给出两个整数m.n(1<=n,m<=20)

然后是一个m行n列的01矩阵,若为1,则该格子被墨水染黑。

Output

对于每组数据,输出一个整数,表示最大被墨水染黑的连通格子数。

Sample Input

1
4 4
1 1 0 0
0 1 1 0
0 0 1 0
1 0 0 0

Sample Output

5
题意:
输入N,M,然后再输入N*M大小的地图,问你有1相临的最大个数。
很基础的一道深度搜索的题目,坑爹的是,= -,没认真看题,是八个方向。
 #include <algorithm>
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int Map[][];
int Len_X,Len_Y;
int SUM;/*记录1相临的最大个数*/
int sum;/*记录每一次进入的1相邻的个数*/
void Input()
{
int i,j;
for(i=;i<=Len_X+;i++)
{
for(j=;j<=Len_Y+;j++)
{
if(i==||j==||i==Len_X+||j==Len_Y+)Map[i][j]=;
else scanf("%d",&Map[i][j]);
}
}
} void BFS(int x,int y)
{
if(Map[x][y]==)
{
Map[x][y]=; /*把当前可行的位置标记成'*'*/
sum++; /*每次遇到一个1,sum++ */
BFS(x+,y); /*进入八个方向进行查找*/
BFS(x-,y);
BFS(x,y+);
BFS(x,y-);
BFS(x+,y+);
BFS(x-,y-);
BFS(x-,y+);
BFS(x+,y-);
}
return ;
}
int main()
{
int i,j,T;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&Len_X,&Len_Y);
Input();/*输入地图,创建围墙*/
SUM=;
for(i=;i<=Len_X;i++)
{
for(j=;j<=Len_Y;j++)
{
if(Map[i][j]==)/*判断当前点为1,则进入搜索*/
{
sum=; /*设置当前1的个数为0*/
BFS(i,j);
if(SUM<=sum) /*获取最大值*/
SUM=sum;
}
}
}
printf("%d\n",SUM);
}
return ;
}

G - 小晴天老师系列——可恶的墨水瓶的更多相关文章

  1. acdream 小晴天老师系列——晴天的后花园 (暴力+剪枝)

    小晴天老师系列——晴天的后花园 Time Limit: 10000/5000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others) ...

  2. acdream 小晴天老师系列——苹果大丰收(DP)

    小晴天老师系列——苹果大丰收 Problem Description 小晴天的后花园有好多好多的苹果树,某天,苹果大丰收~小晴天总共摘了M个苹果,我们假设苹果之间是不可分辨的. 为了保存苹果,小晴天买 ...

  3. acdream 小晴天老师系列——竖式乘法(简单穷举)

    小晴天老师系列——竖式乘法 Time Limit: 4000/2000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others)   ...

  4. E - 小晴天老师系列——我有一个数列!

    E - 小晴天老师系列——我有一个数列! Time Limit: 20000/10000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/O ...

  5. D - 小晴天老师系列——晴天的后花园

    D - 小晴天老师系列——晴天的后花园 Time Limit: 10000/5000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Oth ...

  6. F - 小晴天老师系列——苹果大丰收

    F - 小晴天老师系列——苹果大丰收 Time Limit: 2000/1000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Other ...

  7. C -小晴天老师系列——竖式乘法

    C - 小晴天老师系列——竖式乘法 Time Limit: 4000/2000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others ...

  8. acdream 小晴天老师系列——我有一个数列! (ST算法)

    小晴天老师系列——我有一个数列! Time Limit: 20000/10000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others)S ...

  9. [ACdream]小晴天老师系列——竖式乘

    题目链接:http://acdream.info/contest?cid=1269#problem-C Problem Description 小晴天是ACdream团队中最牛的老师之一,他最擅长数学 ...

随机推荐

  1. hdu1032

    #include <iostream> using namespace std; int main() { int a,b,t,i,max; while(cin >> a &g ...

  2. The Clocks

    The Clocks 题目链接:http://poj.org/problem?id=1166 题意:给出9个时钟的初始状态,问最少通过几次操作,能使每个时钟指向12点(每次操作都会使对应时钟顺时针旋转 ...

  3. SpannableString可以被点击的文字

    1 TextView tv= (TextView) findViewById(R.id.textview_z); String text="一段可以被点击点击的文字,文字可以变成图片&quo ...

  4. SQLite模糊查找(like)

    select UserId,UserName,Name,Sex,Birthday,Height,Weight,Role from xqhit_Users where UserName like &qu ...

  5. matlab读xls数据

    [ndata,label,abalone]=xlsread('data.xls') ndata:表示数字属性 label:表示类别属性 abalone:全部数据

  6. SQLSERVER 的联接查询写法

    1.内连接 语法:[JOIN.INNER JOIN] 作用:两个表相连,加上ON匹配两个表的共同条件. 实例1: SELECT tb_o_i.* FROM tb_o_i INNER JOIN tb_o ...

  7. EFI Shell 命令说明

    EFI Shell 命令说明 引导命令 — EFI Shell 与 nPartition 引导有关的命令. autoboot         设置(查看)自动引导超时变量. bcfg 显示(或修改)驱 ...

  8. mysql修改编码

    1.查看当前编码 2.设置utf8mb4编码(也可以是其他),修改my.cnf或my.ini

  9. python Redis

    Redis非关系型数据库,可以做消息队列功能,可以实现订阅功能,类似于广播,只要订阅道这个频道,发消息的时候,别人可以收到消息,做监控的时候,所有的客户端往一个频道上发消息,server端只有一个监听 ...

  10. jquery学习笔记3 jq遍历

    遍历方式:向上(父级元素)  向下(子元素)    水平(同胞元素) 一.向上遍历 parent()      向上一级   放回被选元素的直接父元素 parents()          返回被选元 ...