1249:Lake Counting 2021-01-05

简介: 1249:Lake Counting 2021-01-05

1249:Lake Counting

时间限制: 1000 ms         内存限制: 65536 KB

【题目描述】

题意:有一块N×M的土地,雨后积起了水,有水标记为‘W’,干燥为‘.’。八连通的积水被认为是连接在一起的。请求出院子里共有多少水洼?

【输入】

第一行为N,M(1≤N,M≤110)。

下面为N*M的土地示意图。

【输出】

一行,共有的水洼数。

【输入样例】

10 12

W........WW.

.WWW.....WWW

....WW...WW.

.........WW.

.........W..

..W......W..

.W.W.....WW.

W.W.W.....W.

.W.W......W.

..W.......W.

【输出样例】

3

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int x[8]={-1,-1,-1,0,1,1,1,0};
int y[8]={-1,0,1,1,1,0,-1,-1};
int n,m,td[112][112],que[1100][4];
int tj=0;
void bfs(int a,int b){
  tj++;
  int x1,y1,to=0,w=1;
  memset(que,0,sizeof(que));
  que[1][1]=a,que[1][2]=b,que[1][3]=0;td[a][b]=0;
  do{
    to++;
    for(int k=0;k<8;k++){
      x1=que[to][1]+x[k];
      y1=que[to][2]+y[k];
      if(x1>0&&x1<=n&&y1>0&&y1<=m&&td[x1][y1]==1){
        w++;
        que[w][1]=x1;que[w][2]=y1;que[w][3]=que[to][3]+1;
        td[x1][y1]=0;
      }
    }
  }while(w>to);
}
int main(int argc, char *argv[])
{
  scanf("%d %d",&n,&m);
  char t;
  for(int i=1;i<=n;i++)
    for(int j=1;j<=m;j++){
      cin>>t;
      if(t=='W')td[i][j]=1;
      else td[i][j]=0;
    }
  for(int i=1;i<=n;i++)
    for(int j=1;j<=m;j++){
      if(td[i][j]==1) bfs(i,j);
    }
  printf("%d\n",tj);
  return 0;
}

 

相关文章
|
网络协议 ice
STUN, TURN, ICE介绍
STUN STUN协议为终端提供一种方式能够获知自己经过NAT映射后的地址,从而替代位于应用层中的私网地址,达到NAT穿透的目的。STUN协议是典型的Client-Server协议,各种具体应用通过嵌入STUN客户端与STUN Server端通讯来完成交互。
11275 0
|
11月前
|
流计算
Delta Lake中CDC的实现
Delta Lake中CDC的实现
90 0
《Improving Real-Time Performance by Utilizing Cache Allocation Technology》电子版地址
Improving Real-Time Performance by Utilizing Cache Allocation Technology
62 0
《Improving Real-Time Performance by Utilizing Cache Allocation Technology》电子版地址
|
分布式计算 Spark
《Acceleration of Generic SPARK Workloads via a “Sea of Cores” Scalable Compute Fabric》电子版地址
Acceleration of Generic SPARK Workloads via a “Sea of Cores” Scalable Compute Fabric
56 0
《Acceleration of Generic SPARK Workloads via a “Sea of Cores” Scalable Compute Fabric》电子版地址
《Next Generation of Intel XEON® Processor Hero Features Review》电子版地址
Next Generation of Intel XEON® Processor Hero Features Review
53 0
《Next Generation of Intel XEON® Processor Hero Features Review》电子版地址
|
SQL 存储 分布式计算
数据湖揭秘—Delta Lake
Delta Lake 是 DataBricks 公司开源的、用于构建湖仓架构的存储框架。能够支持 Spark,Flink,Hive,PrestoDB,Trino 等查询/计算引擎。作为一个开放格式的存储层,它在提供了批流一体的同时,为湖仓架构提供可靠的,安全的,高性能的保证。
3841 7
数据湖揭秘—Delta Lake
|
SQL 分布式计算 搜索推荐
《 Delta Lake 数据湖专题系列5讲》文章回顾
《Delta Lake 数据湖专题系列5讲》由阿里云 DDI 团队翻译整理自大数据技术公司 Databricks 针对数据湖 Delta Lake 系列技术文章。阅读完此系列文章可以帮助您达到入门级,对数据湖 Lakehouse 有整体上的认识和应用,掌握理论知识体系。
《 Delta Lake 数据湖专题系列5讲》文章回顾
|
SQL 消息中间件 JSON
Delta Lake在Soul的应用实践
传统离线数仓模式下,日志入库前首要阶段便是ETL,我们面临如下问题:天级ETL任务耗时久,影响下游依赖的产出时间;凌晨占用资源庞大,任务高峰期抢占大量集群资源;ETL任务稳定性不佳且出错需凌晨解决、影响范围大。为了解决天级ETL逐渐尖锐的问题,所以这次我们选择了近来逐渐进入大家视野的数据湖架构,基于阿里云EMR的Delta Lake,我们进一步打造优化实时数仓结构,提升部分业务指标实时性,满足更多更实时的业务需求。
Delta Lake在Soul的应用实践
|
SQL JSON 分布式计算
不通过 Spark 获取 Delta Lake Snapshot
Delta Lake 进行数据删除或更新操作时实际上只是对被删除数据文件做了一个 remove 标记,在进行 vacuum 前并不会进行物理删除,因此一些例如在 web 上获取元数据或进行部分数据展示的操作如果直接从表路径下获取 parquet 文件信息,读到的可能是历史已经被标记删除的数据。
不通过 Spark 获取 Delta Lake Snapshot