ural 1250. Sea Burial
1250. Sea Burial
Memory limit: 64 MB
Input
Output
Samples
| input | output |
|---|---|
9 7 1 1 |
3 |
9 7 3 3 |
2 |
Problem Source: Open collegiate programming contest for student teams, Ural State University, March 15, 2003
/**
Create By yzx - stupidboy
*/
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <deque>
#include <vector>
#include <queue>
#include <iostream>
#include <algorithm>
#include <map>
#include <set>
#include <ctime>
#include <iomanip>
using namespace std;
typedef long long LL;
typedef double DB;
#define MIT (2147483647)
#define INF (1000000001)
#define MLL (1000000000000000001LL)
#define sz(x) ((int) (x).size())
#define clr(x, y) memset(x, y, sizeof(x))
#define puf push_front
#define pub push_back
#define pof pop_front
#define pob pop_back
#define ft first
#define sd second
#define mk make_pair inline int Getint()
{
int Ret = ;
char Ch = ' ';
bool Flag = ;
while(!(Ch >= '' && Ch <= ''))
{
if(Ch == '-') Flag ^= ;
Ch = getchar();
}
while(Ch >= '' && Ch <= '')
{
Ret = Ret * + Ch - '';
Ch = getchar();
}
return Flag ? -Ret : Ret;
} const int N = ;
const int DX[] = {-, , , , -, -, , }, DY[] = {, -, , , -, , -, };
#define Land 1
#define Sea 2
int n, m, sx, sy;
int graph[N][N], mark[N][N];
int ans; inline void Input()
{
scanf("%d%d%d%d", &n, &m, &sx, &sy);
swap(sx, sy), swap(n, m);
for(int i = ; i <= n; i++)
for(int j = ; j <= m; j++)
{
char ch = ' ';
while(ch != '.' && ch != '#') ch = getchar();
graph[i][j] = ch == '.' ? Sea : Land;
}
} inline bool Check(int x, int y, int state)
{
if(x < || x > n || y < || y > m) return ;
if(!(graph[x][y] & state) || mark[x][y]) return ;
return ;
} inline void Draw(int sx, int sy, int state, int tag)
{
static int que[N * N][], tail;
mark[sx][sy] = tag;
tail = , que[][] = sx, que[][] = sy;
for(int head = ; head <= tail; head++)
{
int ux = que[head][], uy = que[head][];
for(int t = ; t < ; t++)
{
if(t > && graph[ux][uy] == Land) break;
int vx = ux + DX[t], vy = uy + DY[t];
if(!Check(vx, vy, state)) continue;
mark[vx][vy] = tag, tail++;
que[tail][] = vx, que[tail][] = vy;
}
}
} inline void Solve()
{
if(graph[sx][sy] == '#')
{
puts("");
return;
} Draw(sx, sy, Sea, );
for(int i = ; i <= n; i++)
{
Draw(i, , Land | Sea, );
Draw(i, m + , Land | Sea, );
}
for(int i = ; i <= m; i++)
{
Draw(, i, Land | Sea, );
Draw(n + , i, Land | Sea, );
} for(int i = ; i <= n; i++)
for(int j = ; j <= m; j++)
if(!mark[i][j] && graph[i][j] == Land)
{
ans++;
Draw(i, j, Land, );
} printf("%d\n", ans);
} int main()
{
freopen("a.in", "r", stdin);
Input();
Solve();
return ;
}
ural 1250. Sea Burial的更多相关文章
- Ural 1250 Sea Burial 题解
目录 Ural 1250 Sea Burial 题解 题意 输入 题解 程序 Ural 1250 Sea Burial 题解 题意 给定一个\(n\times m\)的地图,\(.\)为水,\(\#\ ...
- URAL 1250 Sea Burial 简单Floodfill
问这个人掉落的海域包含几个岛屿. 八方向相连为同一片海域,四方向相连为同一个岛屿.与边界相连的岛屿不算. 方法:在给定地图外面填充一圈".",从这个人掉落的地方开始进行floodf ...
- ural 1250
有点坑的dfs 看懂题应该就会做了 神圣海必然围成一个圈 dfs将神圣还外围的全部去掉 简单题 #include <cstdio> #include <cstring> ...
- URAL 1934 spfa算法
D - Black Spot Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Subm ...
- sea.js模块化编程
* 为什么要模块化? 解决文件依赖 解决命名冲突 ; var var2 = 2; function fn1(){ } function fn2(){ } return { fn1: fn1, fn2: ...
- 【Codeforces 738D】Sea Battle(贪心)
http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...
- 解决sea.js引用jQuery提示$ is not a function的问题
在使用sea.js的如下写法引用jQuery文件时, //main.jsdefine(function(require,exports,module){ var $ = require('jquery ...
- 模块化开发--sea.js
当你的网站开发越来越复杂的时候,会经常遇到一下问题吗?1.冲突2.性能3.依赖如果在多人开发或者是复杂的开发过程中会经常遇到这些问 题,就可以用模块化开发来解决.以上问题是如何产生的?1.冲突:如果你 ...
- sea.js 入门
上个月学了 require.js 现在顺便来学学 sea.js. 对比下这两种的区别,看自己喜欢哪个,就在接下来的项目中去使用它吧. seajs中的所有 JavaScript 模块都遵循 CMD 模块 ...
随机推荐
- Destination Host Unreachable
自己的Linux 机器连不上服务器了,ping XXXX的时候报这个错误了 看了一下是因为IP的原因==>进入Linux的图形界面==>System==>Administration ...
- Java大数处理类:BigInteger类和BigDecimal类
当我们要处理非常大的数据时,平常用的数据类型已不足以表示,在Java中有两个类BigInteger和BigDecimal分别表示大整数类和大浮点数类,这两个类在理论上只要计算机内存足够大就能够表示无线 ...
- Struts2拦截器之DefaultWorkflowInterceptor
一.DefaultWorkflowInterceptor是什么 首先说这东西是干嘛来的,在action中可以对传进来的数据进行验证,方法是实现Validateable接口的validate():voi ...
- 1.1 STL 概述
综述 STL = Standard Template Library,标准模板库,惠普实验室开发的一系列软件的统称.它是由Alexander Stepanov.Meng Lee和David R M ...
- Django环境配置
Django安装 #安装最新版本的Django $ pip install django #或者指定安装版本 pip install -v django==1.7.1 项目创建 $ django-ad ...
- 关于logcat日志
最近学习android,碰到了logcat,个人总结一下. 当不出日志是解决办法: ProjectMenu---后台设置----LOG设置---LOG开关 Logcat(deprecated)和Log ...
- Windows 10 周年更新正式版下载 + win10 快捷键
Windows 10 周年更新正式版 360云资源总汇(施工中): https://yunpan.cn/c6Svi7Az52XBs (提取码:e5dd)今后提到周年更新版.1607版或RS1版,都是 ...
- ArcGIS中的三种查询
ArcGIS runtime SDK for WPF/Silverlight中的三种常用的查询:QueryTask.FindTask.IdentifyTask都是继承自ESRI.ArcGIS.Clie ...
- 六款小巧的HTTP Server[C语言]
1.micro_httpd - really small HTTP server特点: 支持安全的 .. 上级目录过滤 支持通用的MIME类型 支持简单的目录 支持目录列表 支持使用 index.ht ...
- SPI-软件开发注意事项
01 PD ,设置数据库前一定把模板设置号,命名规则规划清楚.