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 & ...
随机推荐
- SimpleDateFormat使用和线程安全问题
SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类. 它允许格式化 (date -> text).语法分析 (text -> date)和标准化. Simpl ...
- spring-线程池(1)
多线程并发处理起来通常比较麻烦,如果你使用spring容器来管理业务bean,事情就好办了多了.spring封装了java的多线程的实现,你只需要关注于并发事物的流程以及一些并发负载量等特性,具体来说 ...
- Github+Hexo,搭建专有博客
前言 记得从大二开始,就一直想搭个专属网站,当时使劲抠页面[前端页面是从QQ空间抠的,现在想抠估计没这么容易了],写代码,忙活半天才把程序弄好. 可惜最终项目还是没上线,因为当时有两问题绕不开 需要购 ...
- CSS小技巧-怎样让每行多余的文字显示文省略号?
1.white-space:nowrap 如果是中文,则需要设置行末不断行 2.overflow:hidden 设置超出控件范围隐藏 3.text-overflow:ellipsis
- storm定时任务【tick】
一. 简介 storm作为流计算,处理数据通常以数据驱动.即只有当spout发射数据才会进行计算.那么如果想要做定时任务如何处理哪,例如有的bolt需要输出一段时间统计的结果,这里一段时间可 ...
- 【FPGA】高斯白噪声的Verilog实现
本文章主要讨论高斯白噪声的FPGA实现.简单的方法可以采用在Matlab中产生服从一定均值和方差的I.Q两路噪声信号.然后将两组数据存在FPGA中进行回放,以此来产生高斯白噪声.这种方法优点是产生方法 ...
- 织梦DedeCMS调用二级子栏目或者多级栏目的方法
图2 当前栏目typeid值为3,所以代码如下: {dede:channelartlist typeid='3,3'} <a href="{dede:field name='typeu ...
- 获取Skype用户IP地址
#!/usr/bin/env bash ESC_SEQ="\x1b[" COL_RESET=$ESC_SEQ"39;49;00m" COL_RED=$ESC_S ...
- 让getElementsByClassName兼容
function getElementsByClassName(node, classname){ if(node.getElementsByClassName){ //使用现有方法 return n ...
- [转] (CQRS)命令和查询责任分离架构模式(二) 之 Command的实现
概述 继续引用上篇文章中的图片(来源于Udi Dahan博客),UI中的写入操作都将被封装为一个命令中,发送给Domain Model来处理. 我们遵循Domain Driven Design的设计思 ...