题目:

圣诞老人回到了北极圣诞区,已经快到12点了。也就是说极光表演要开始了。这里的极光不是极地特有的自然极光景象。而是圣诞老人主持的人造极光。

轰隆隆……烟花响起(来自中国的浏阳花炮之乡)。接下来就是极光表演了。

人造极光其实就是空中的一幅幅n*m的点阵图像。只是因为特别明亮而吸引了很多很多小精灵的目光,也成为了圣诞夜最美丽的一刻。

然而在每幅n*m的点阵图像中,每一个点只有发光和不发光两种状态。对于所有的发光的点,在空中就形成了美丽的图画。而这个图画是以若干个(s个)图案组成的。对于图案,圣诞老人有着严格的定义:对于两个发光的点,如果他们的曼哈顿距离(对于A(x1,y1)和B(x2,y2),A和B之间的曼哈顿距离为|x1-x2|+|y1-y2|)小于等于2。那么这两个点就属于一个图案……

小精灵们一边欣赏着极光,一边数着每一幅极光图像中的图案数。伴着歌声和舞蹈,度过了美丽的圣诞之夜。^_^

裸的bfs,强连通。我编的反而麻烦了,哎!

var
  f:array[-5..105,-5..105] of boolean;
  a:array[-5..105,-5..105] of char;
  t:array[-5..105,-5..105] of longint;
  k,n,m,i,j:longint;
procedure zz;
var i,j:longint;
begin
  for i:=1 to n do
    for j:=1 to m do
      f[i,j]:=true;
end;
procedure bfs(x,y:longint);
begin
  if (f[x+1,y]) and (a[x+1,y]='#') then beginf[x+1,y]:=false;t[x+1,y]:=k;bfs(x+1,y);end;
  if (f[x,y+1]) and (a[x,y+1]='#') then beginf[x,y+1]:=false;t[x,y+1]:=k;bfs(x,y+1);end;
  if (f[x-1,y]) and (a[x-1,y]='#') then beginf[x-1,y]:=false;t[x-1,y]:=k;bfs(x-1,y);end;
  if (f[x,y-1]) and (a[x,y-1]='#') then beginf[x,y-1]:=false;t[x,y-1]:=k;bfs(x,y-1);end;
  if (f[x+2,y]) and (a[x+2,y]='#') then beginf[x+2,y]:=false;t[x+2,y]:=k;bfs(x+2,y);end;
  if (f[x,y+2]) and (a[x,y+2]='#') then beginf[x,y+2]:=false;t[x,y+2]:=k;bfs(x,y+2);end;
  if (f[x-2,y]) and (a[x-2,y]='#') then beginf[x-2,y]:=false;t[x-2,y]:=k;bfs(x-2,y);end;
  if (f[x,y-2]) and (a[x,y-2]='#') then beginf[x,y-2]:=false;t[x,y-2]:=k;bfs(x,y-2);end;
  if (f[x+1,y+1]) and (a[x+1,y+1]='#') then beginf[x+1,y+1]:=false;t[x+1,y+1]:=k;bfs(x+1,y+1);end;
  if (f[x-1,y+1]) and (a[x-1,y+1]='#') then beginf[x-1,y+1]:=false;t[x-1,y+1]:=k;bfs(x-1,y+1);end;
  if (f[x+1,y-1]) and (a[x+1,y-1]='#') then beginf[x+1,y-1]:=false;t[x+1,y-1]:=k;bfs(x+1,y-1);end;
  if (f[x-1,y-1]) and (a[x-1,y-1]='#') then beginf[x-1,y-1]:=false;t[x-1,y-1]:=k;bfs(x-1,y-1);end;
end;
begin
  {assign(input,'light.in');
  assign(output,'light.out');
  reset(input);
  rewrite(output);}
  readln(n,m);
  for i:=1 to n do
    begin
      for j:=1 to m do
        read(a[i,j]);
      readln;
    end;
  for i:=1 to n do
    for j:=1 to m do
      if (a[i,j]='#') and (t[i,j]=0) then
        begin
          k:=k+1;
          zz;
          f[i,j]:=false;
          t[i,j]:=k;
          bfs(i,j);
        end;
  writeln(k);
  {close(input);
  close(output);}
end.

vijos1051题解的更多相关文章

  1. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  2. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  3. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  4. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  5. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  6. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  7. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  8. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

  9. CF100965C题解..

    求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...

随机推荐

  1. 解决xshell连接不上Ubuntu

    起初,我虚拟上网是通过NAT上网的,xshell 可以正常连接Ubuntu . 后来有段时间,主机上网频繁断线,于是,我将网络适配器VM1,VM8禁用了. 还有一次,麻烦公司同事远程协助,虚拟机通过桥 ...

  2. 如何在Elasticsearch中安装中文分词器(IK)和拼音分词器?

    声明:我使用的Elasticsearch的版本是5.4.0,安装分词器前请先安装maven 一:安装maven https://github.com/apache/maven 说明: 安装maven需 ...

  3. 使用Git上传项目代码到github

    github是一个基于Git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开.这对于一般人来说公共仓库就已经足够了.   注册账户以及创建仓库 要想使用gi ...

  4. mysqldump备份还原mysql

    本文实现在mysql 5.7 解压版为例子 1.在window上简单试下一个例子 1.使用管理员权限打开cmd命名行,并切换到mysqldump执行程序下

  5. 读阿里巴巴Java开发手册v1.2.0之工程结构有感【架构篇】

    首先,把昨天那俩条sql语句的优化原因给大家补充一下,第一条效率极低,第二条优化后的,sql语句截图如下: 经过几个高手的评论和个人的分析: 第一条sql语句查询很慢是因为它首先使用了in关键字查询, ...

  6. kafka 0.10.2 部署失败后,重新部署

    删除kafka各个节点log目录 删除zookeeper上kafka相关的目录 [root@m1 ~]# zkCli.sh Connecting to localhost: -- ::, [myid: ...

  7. 1.Java第一课:初识java

    今天也算是正式地开始学习Java了,一天学的不是太多,旨在入门了解Java.还好现在学的都是基础,也能赶得上进度,希望以后能一直保持这种精神状态坚持学下去.下面就简单来说说今天所学的内容吧. 1计算机 ...

  8. Vivado2015.4使用教程(一个完成工程的建立)

    双击桌面的vivado图标,(可能有点慢) 弹出主菜单界面,点击create new project 这是介绍界面,next~ 添加好工程名,和工程位置,next~ 选择rtl Project,nex ...

  9. lucene全文搜索之一:lucene的主要功能和基本结构(基于lucene5.5.3)

    前言:lucene并不是像solr或elastic那样提供现成的.直接部署可用的系统,而是一套jar包,提供了一些常见语言分词.构建索引和创建搜索器等等功能的API,我们常用到的也就是分词器.索引目录 ...

  10. 网络数据传输安全及SSH与HTTPS工作原理

    本节内容 网络数据传输安全概述 数据加密算法分类 SSH工作原理 HTTPS工作原理 参考资料 个人一直在努力推动git在公司内部的普及和使用,前些日子在公司内部做了一次分享课,给大家介绍了下项目发布 ...