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 & ...
随机推荐
- python求职Top10城市,来看看是否有你所在的城市
前言 从智联招聘爬取相关信息后,我们关心的是如何对内容进行分析,获取用用的信息. 本次以上篇文章“5分钟掌握智联招聘网站爬取并保存到MongoDB数据库”中爬取的数据为基础,分析关键词为“python ...
- 在微信小程序中学习flex布局
网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖display属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂直居中就 ...
- GRPC在NET上的实践(记录篇)
GRPC是什么? GRPC是一个开源RPC框架,于2015年3月开源,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于Protobuf 3.0(Protocol Buffer ...
- React+ajax+java 上传图片并预览
之前有在网上找ajax上传图片的资料,大部分的人写得都是用jQuery,但是在这里用JQuery就大才小用了,所以我就自己写了,先上图. 由上图,首先点击上面的选择文件,在选择图片之后,将会自动上传图 ...
- css浮动--float/clear通俗讲解(转载)
本文为转载 (出处:http://www.cnblogs.com/iyangyuan/archive/2013/03/27/2983813.html) 教程开始: 首先要知道,div是块级元素,在页面 ...
- 用scikit-learn学习LDA主题模型
在LDA模型原理篇我们总结了LDA主题模型的原理,这里我们就从应用的角度来使用scikit-learn来学习LDA主题模型.除了scikit-learn, 还有spark MLlib和gensim库 ...
- Virtualbox让kali虚拟机共享主机的无线网络连接
今天在测试虚拟机下安装kali系统时,遇到一个问题,默认安装完kali系统后,虚拟机不能上网.虚拟机网络配置使用的是默认的网络地址转换(NAT)选项. 网上查了很多,都说使用NAT模式时虚拟机不用做任 ...
- ProxySQL的相关维护说明
背景: 前面的2篇文章MySQL ProxySQL读写分离使用初探和MySQL ProxySQL读写分离实践大致介绍了ProxySQL的使用说明,从文章的测试的例子中看到ProxySQL使用SQLIT ...
- python之numpy库[2]
python-numpy csv文件的写入和存取 写入csv文件 CSV (Comma‐Separated Value, 逗号分隔值),是一种常见的文件格式,用来存储批量数据. 写入csv文件 np. ...
- Win7安装Docker
系统环境 1. windows 7 旗舰版64位 i5-2450M CPU 8G内存 2.支持“ Hardware Virtualization Technology”,并且,“virtualiza ...