Aizu - 0118(深搜)

2024-09-07 19:32
文章标签 aizu 0118

本文主要是介绍Aizu - 0118(深搜),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目链接:点击打开链接


解析:

深搜无疑,和水洼那题类似。以查找过的赋值1,然后每次找不是1的位置,一搜一片即可。最后记录多少有片区域。


完整代码:

#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <iostream>
#include <cmath>
#include <vector>
#include <map>
using namespace std;
const int maxn = 101;
char g[maxn][maxn];
int d[4][2] = {0 , 1 , 1 , 0 , 0 , -1 , -1 ,0};
void dfs(int si , int sj , int n , int m , char ch)
{g[si][sj] = '1';for(int i = 0 ; i < 4 ; i ++){int x = si + d[i][0];int y = sj + d[i][1];if(x < 0 || x >= n || y < 0 || y >= m || g[x][y] != ch) continue;dfs(x , y , n , m , ch);}
}int main()
{#ifdef DoubleQfreopen("in.txt" , "r" , stdin);#endif // DoubleQint n , m;while(cin >> n >> m){if(n == 0 && m == 0) break;string str;for(int i = 0 ; i < n ; i ++){cin >> str;for(int j = 0 ; j < m ; j ++){g[i][j] = str[j];}}int cnt = 0;/*for(int i = 0 ; i < n ;i ++){for(int j = 0 ; j < m ; j ++){cout << g[i][j] << " ";}cout << endl;}*/for(int i = 0 ; i < n ; i ++){for(int j = 0 ; j < m ; j ++){if(g[i][j] != '1'){dfs(i , j , n , m , g[i][j]);cnt ++;}}}cout << cnt << endl;}
}


这篇关于Aizu - 0118(深搜)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1145957

相关文章

Aizu 2541 Magical Bridges

题意: n个岛屿,由m条桥连接,其中有k条是魔法桥,你可以用魔法把他们变成相同长度。 求在执行魔法后,两个起点S1和S2到终点T的最短路的最小绝对差。 (1≤n≤1000,1≤m≤2000,1≤k≤100) (1\leq n\leq 1000,1\leq m\leq 2000,1\leq k\leq 100) S1 S_1和 S2 S_2到 T T的最短路将会是如 j×x+disj\t

Aizu 2538 Stack Maze【记忆化搜索】

其实我并不知道我的姿势算是什么。 一开始想着用二维的记忆化搜索,用 dp[x][y] dp[x][y]表示 (x,y)→(H,W) (x,y)\rightarrow(H,W)能够得到的最大happy值。但是很遗憾的是,这样没法记录,在前进的路上,我有多少个宝石、能够经过多少宝石洞。 所以就想着如何记录,最后发现难以记录。如果是这样的记忆化搜索,时间复杂度大约是 O(n2) O(n^2),那么就

0118__dmesg

Linux命令 - dmesg—LZL在线工具

0118__C语言——float.h文件

C语言——float.h文件_c float.h-CSDN博客

Property Distribution Aizu - 0118

题目: タナカ氏が HW アールの果樹園を残して亡くなりました。果樹園は東西南北方向に H × W の区画に分けられ、区画ごとにリンゴ、カキ、ミカンが植えられています。タナカ氏はこんな遺言を残していました。 果樹園は区画単位でできるだけ多くの血縁者に分けること。ただし、ある区画の東西南北どれかの方向にとなりあう区画に同じ種類の果物が植えられていた場合は、区画の境界が分からないのでそれらは 1

人工智能_机器学习078_聚类算法_概念介绍_聚类升维_降维_各类聚类算法_有监督机器学习_无监督机器学习---人工智能工作笔记0118

首先看一下什么是聚类,我们可以进入sklearn的官网去看看 可以看到这里,首先classification 这个分类我们学完了,然后就是regression回归我们也学完了对吧,其实我们现实生活中的,大部分问题就是 这两种问题就可以解决了. 然后我们再来看一个: clustering,这个就是聚类对吧.聚类算法  就是对数据,进行自动划分类别

C - Medical Checkup Aizu - 1380

题目https://vjudge.net/problem/Aizu-1380 想的太复杂了,真的,写都不好写,写完了也写wa了; 把我心态都搞崩了。 思路: 如果画一个区间图,仔细分析的话,就会发现,每次的可以进行的项目数,与之前出现过的最大值有关,等待时间加上当前操作的执行时间,其实是最大时间,所以以mxx,为划分区间, 注意:当等待的时候,项目数应该加1     #includ

Aizu - 0558 Cheese(BFS)

问题描述       在H * W的地图上有N个奶酪工厂,每个工厂分别生产硬度为1-N的奶酪。有一只老鼠准备从出发点吃遍每一个工厂的奶酪。老鼠有一个体力值,初始时为1,每吃一个工厂的奶酪体力值增加1(每个工厂只能吃一次),且老鼠只能吃硬度不大于当前体力值的奶酪。      老鼠从当前格到上下左右相邻的无障碍物的格需要时间1单位,有障碍物的格不能走。走到工厂上时即可吃到该工厂的奶酪,吃奶酪时间

AIZU ONLINE JUDGE (会津大学在线测评,简称AOJ)

AOJ 官网地址:http:judge.u-aizu.ac.jp 最近在看《挑战程序设计竞赛||算法和数据结构》一书,书中大量例题均收录在AOJ测评系统上面,为了更好的练习巩固知识,免费注册了账号。(Windows10 下面用Chrome浏览器注册失败后,转向win10自带浏览器Edge注册成功),有了账号就可以在上面挑(zhao)战(nve)啦、找了到冒泡排序练了一手,最后看到绿

Aizu Online Judge(AOJ)会津大学在线测评 使用简介——用户相关,题库导引使用

Aizu Online Judge(AOJ)会津大学在线测评  使用简介 用户 上回书说到,我们终于有了自己的AOJ账号,于是我们满心欢喜的登陆了,如图: 很明显这是一个Users(用户)界面,最上方是用户头像,ID和从属,下面两个时间,第一个是你账号的破壳日也就是注册时间,后面那个时间是你最后一次提交的时间。 再下面四个栏从左往右依次是:提交(次数);解决问题(数量);目前评级;目前