vijos1051题解
题目:
圣诞老人回到了北极圣诞区,已经快到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题解的更多相关文章
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
- CF100965C题解..
求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...
随机推荐
- c语言项目开发流程二部曲
一.在第一部曲中我们介绍了电子词典项目开发的前5步,下面继续我们的步伐. 6.函数接口设计,这一步不是一蹴而就的,在项目进行中得不断修改,下面是我电子词典项目接口. /**************函数 ...
- HeadFirst SQL 读书摘要
数据库都是用 圆柱形表示的. 数据库中包含表 表中包含行和列 行又叫记录record, 列又叫 字段field 创建数据库 create database mypipe_l; 选择数据库 use m ...
- 利用 os.walk() 遍历目录
os.walk: walk(top, topdown=True, onerror=None, followlinks=False) 参数: top 要遍历的目录地址 topdown 为真,则优先遍历t ...
- #417 Div2 C
#417 Div2 C 题意 给出 n 个货物的基础价格和钱 S ,每个货物的最终价格要加上 购买商品总数 * 商品在原来序列中的序号. 问最多能买多少件,且花费最小. 分析 二分购买商品数量,每次判 ...
- 【JAVAEE学习笔记】hibernate04:查询种类、HQL、Criteria、查询优化和练习为客户列表增加查询条件
一.查询种类 1.oid查询-get 2.对象属性导航查询 3.HQL 4.Criteria 5.原生SQL 二.查询-HQL语法 //学习HQL语法 public class Demo { //基本 ...
- threading多线程总结
threading用于提供线程相关的操作,线程是应用程序中工作的最小单元.python当前版本的多线程库没有实现优先级.线程组,线程也不能被停止.暂停.恢复.中断. threading模块提供的类: ...
- 网络数据传输安全及SSH与HTTPS工作原理
本节内容 网络数据传输安全概述 数据加密算法分类 SSH工作原理 HTTPS工作原理 参考资料 个人一直在努力推动git在公司内部的普及和使用,前些日子在公司内部做了一次分享课,给大家介绍了下项目发布 ...
- 在ROS中使用花生壳的域名服务
ROS功能强大,也比较复杂,各个版本的脚本可能也大同小异,我现在使用的是6.37.3的版本. 添加Script 进入菜单System->Scripts. 点击加号,像图中这样,添加代码,我给这段 ...
- Spring学习(21)--- AOP之Advice应用(上)
前置通知(Before advice) 在某个连接点(join point)之前执行的通知,但不能阻止连接点前的执行(除非它抛出异常) 返回后通知(After returning advice) 在某 ...
- jQuery 插件 的this 指向问题(实战)
daterangepicker 是一个JavaScript组件,用来选择日期. 资源直接搜索 daterangepicker 即可,当然好看的样式可以基于Bootstrap. 官网:http://ww ...