hihocoder offer收割编程练习赛12 C 矩形分割
思路:
模拟,深搜。
实现:
#include <iostream>
#include <cstdio>
#include <string>
using namespace std; const int dx[] = { , , , - };
const int dy[] = { -, , , }; int n, m, cnt = ;
int a[][];
bool vis[][]; void dfs(int x, int y)
{
vis[x][y] = true;
for (int i = ; i < ; i++)
{
int nx = x + dx[i];
int ny = y + dy[i];
if (nx >= && nx < * n && ny >= && ny < * m && !a[nx][ny] && !vis[nx][ny])
{
dfs(nx, ny);
}
}
} int main()
{
scanf("%d %d", &n, &m);
getchar();
for (int i = ; i < n; i++)
{
for (int j = ; j < m; j++)
{
char c = getchar();
if (c == '/')
{
a[ * i][ * j] = ;
a[ * i][ * j + ] = ;
a[ * i][ * j + ] = ;
a[ * i + ][ * j] = ;
a[ * i + ][ * j + ] = ;
a[ * i + ][ * j + ] = ;
a[ * i + ][ * j] = ;
a[ * i + ][ * j + ] = ;
a[ * i + ][ * j + ] = ;
}
else if (c == '\\')
{
a[ * i][ * j] = ;
a[ * i][ * j + ] = ;
a[ * i][ * j + ] = ;
a[ * i + ][ * j] = ;
a[ * i + ][ * j + ] = ;
a[ * i + ][ * j + ] = ;
a[ * i + ][ * j] = ;
a[ * i + ][ * j + ] = ;
a[ * i + ][ * j + ] = ;
}
}
getchar();
} for (int i = ; i < * n; i++)
{
for (int j = ; j < * m; j++)
{
if (!a[i][j] && !vis[i][j])
{
dfs(i, j);
cnt++;
}
}
}
cout << cnt << endl;
return ;
}
hihocoder offer收割编程练习赛12 C 矩形分割的更多相关文章
- hihocoder [Offer收割]编程练习赛12 [1495] ---- 矩形分割
原题链接 矩形分割 算法分析: 解决该题要用到"并查集"的思想. 这里有一篇不错的博客介绍并查集: 并查集(Union-Find)算法介绍 记 int total=N*M,这里会有 ...
- hihocoder [Offer收割]编程练习赛12 [1494] ---- 一面砖墙
原题链接 一面砖墙 算法分析 设墙的宽度为 range,则需要统计横坐标为 1,2,3,4,...,range-1 处的墙缝数,取最大的墙缝数(记为maxCrevices),从该处划一道竖线,竖线穿过 ...
- hihocoder offer收割编程练习赛12 D 寻找最大值
思路: 可能数据太水了,随便乱搞就过了. 实现: #include <iostream> #include <cstdio> #include <algorithm> ...
- hihocoder offer收割编程练习赛12 B 一面砖墙
思路: 就是求哪个长度出现的次数最多. 实现: #include <iostream> #include <cstdio> #include <algorithm> ...
- hihocoder offer收割编程练习赛12 A 歌德巴赫猜想
思路: 枚举. 实现: #include <iostream> #include <cstdio> #include <algorithm> using names ...
- hihocoder [Offer收割]编程练习赛4
描述 最近天气炎热,小Ho天天宅在家里叫外卖.他常吃的一家餐馆一共有N道菜品,价格分别是A1, A2, ... AN元.并且如果消费总计满X元,还能享受优惠.小Ho是一个不薅羊毛不舒服斯基的人,他希望 ...
- hihocoder [Offer收割]编程练习赛61
[Offer收割]编程练习赛61 A:最小排列 给定一个长度为m的序列b[1..m],再给定一个n,求一个字典序最小的1~n的排列A,使得b是A的子序列. 贪心即可,b是A的子序列,把不在b中的元素, ...
- 【[Offer收割]编程练习赛12 C】矩形分割
[题目链接]:http://hihocoder.com/problemset/problem/1495 [题意] [题解] 把每个方块都再分成3*3的小块; 这样; 对于一个方块来说 如果是'\' 则 ...
- ACM学习历程—Hihocoder [Offer收割]编程练习赛1
比赛链接:http://hihocoder.com/contest/hihointerview3/problem/1 大概有一个月没怎么打算法了.这一场的前一场BC,也打的不是很好.本来Div1的A和 ...
随机推荐
- java重载中的基本类型的自动类型转换
当传递到函数的参数的数据类型表示的范围小于函数形参的参数类型遵循如下原则 : char类型比较特殊, 直接转换为int: char ->int ->long->float-> ...
- Redis和Memcache性能测试对比
Redis和Memcache在写入性能上面差别不大,读取性能上面尤其是批量读取性能上面Memcache全面胜出,当然Redis也有自己的优点:比如数据持久化.支持更多的数据结构(Set List ZS ...
- 树莓派 mongodb 安装&报错处理
树莓派 mongodb 安装&报错处理 编译过的源码下载地址: http://files.cnblogs.com/files/xueshanshan/mongodb-rpi.zip addus ...
- CUDA编程(十)使用Kahan's Summation Formula提高精度
CUDA编程(十) 使用Kahan's Summation Formula提高精度 上一次我们准备去并行一个矩阵乘法.然后我们在GPU上完毕了这个程序,当然是非常单纯的把任务分配给各个线程.也没有经过 ...
- oracle sql 超长报ORA-01460错误
程序查找数据的时候报错了: ORA-01460: 转换请求无法实施或不合理 这是什么鬼?不合理你就提嘛,报错干什么. 程序原本好好的,现在突然报错了.数据库并没有什么更改. 后来猜测是因为执行的SQL ...
- mac系统下显示隐藏文件
在终端上输入以下命令即可: 显示隐藏文件命令: defaults write com.apple.finder AppleShowAllFiles -bool true 不显示隐藏文件命令: defa ...
- iOS 7 present/dismiss转场动画
前言 iOS 7以后提供了自定义转场动画的功能,我们可以通过遵守协议完成自定义转场动画.本篇文章讲解如何实现自定义present.dismiss自定义动画. 效果图 本篇文章实现的动画切换效果图如下: ...
- SPOJ:Fibonacci Polynomial(矩阵递推&前缀和)
Problem description. The Fibonacci numbers defined as f(n) = f(n-1) + f(n-2) where f0 = 0 and f1 = 1 ...
- BZOJ_1195_[HNOI2006]最短母串_AC自动机+BFS+分层图
BZOJ_1195_[HNOI2006]最短母串_AC自动机+BFS+分层图 Description 给定n个字符串(S1,S2,„,Sn),要求找到一个最短的字符串T,使得这n个字符串(S1,S2, ...
- jquery ajax post请求实例
function test(){ $.ajax({ //提交数据的类型 POST GET type:"POST", //提交的网址 url:"testLogin.aspx ...