ACM_魔仙岛探险(深搜)
魔仙岛探险
Time Limit: 2000/1000ms (Java/Others)
Problem Description:
小敏通过秘密方法得到一张不完整的魔仙岛航拍地图。魔仙岛由一个主岛和一些附属岛屿组成,小敏决定去魔仙岛探险。
二维矩阵10*10代表魔仙岛的航拍地图。图中数字表示海拔,0表示海洋,1~9都表示陆地。
小敏的飞机将会降落在二维矩阵x行y列处(数据保证一定会降落在岛屿上),现在需要计算出小敏降落所在岛的面积(即有多少个格子)。
注意此处我们把与小敏降落点上下左右相链接的陆地均视为同一岛屿。
Input:
输入有多组数据
第一行4个整数,前两个整数n, m表示二维矩阵n行m列,后两个整数x, y表示降落的坐标x行y列。(1 <= x <= n <= 100, 1 <= y <= m <= 100)
接下来的第二行开始输入一个二维矩阵。
Output:
一个整数表示岛屿的面积,每组输出占一行。
Sample Input:
10 10 5 1
1 2 1 0 5 0 0 0 2 3
3 0 2 0 1 2 1 0 1 2
4 0 1 0 1 2 3 2 0 1
3 2 0 0 0 1 2 4 0 0
5 0 0 0 0 0 1 5 3 0
0 1 2 1 0 1 5 4 3 0
0 1 2 3 1 3 6 2 1 0
0 0 3 4 8 9 7 5 0 0
0 0 0 3 7 8 6 0 1 2
0 0 0 0 0 0 0 0 1 0
Sample Output:
10
解题思路:简单的搜索,水过。根据递归的特性,每次循环到当前点的值不为0时,就会把此位置的信息压入栈中,当后面的值为0即不满足条件时,将会依次出栈直到前一个位置周围还有值不为0才再次递归,否则一直回退,直到栈空。
AC代码:
#include<bits/stdc++.h>
using namespace std;
int n,m,x,y,cnt,s[][],dir[][]={{-,},{,},{,},{,-}};
void dfs(int x,int y){
if(x<||x>=n||y<||y>=m||s[x][y]==)return;//边界条件
s[x][y]=;cnt++;
for(int i=;i<;++i)
dfs(x+dir[i][],y+dir[i][]);
}
int main(){
while(~scanf("%d%d%d%d",&n,&m,&x,&y)){
for(int i=;i<n;++i)
for(int j=;j<m;++j)
scanf("%d",&s[i][j]);
cnt=;dfs(x-,y-);
cout<<cnt<<endl;
}
return ;
}
ACM_魔仙岛探险(深搜)的更多相关文章
- ACM_新七步诗(深搜)
新七步诗 Time Limit: 2000/1000ms (Java/Others) Problem Description: 突然的一天,小锴做了一个梦,梦见自己来到了三国,而自己也成了梦寐以求的帅 ...
- ACM 海贼王之伟大航路(深搜剪枝)
"我是要成为海贼王的男人!" 路飞他们伟大航路行程的起点是罗格镇,终点是拉夫德鲁(那里藏匿着"唯一的大秘宝"--ONE PIECE).而航程中间,则是各式各样的 ...
- 关于深搜dps
哈哈,我又来了! 但是!今天我又带来了让人开心到窒息的 ----深搜dps 其实关于深搜,概念没啥可讲的,总结一句话概括就是:一直往下搜,直到满足条件的,再回来,沿着下一条路搜,直到把路全走完为止.. ...
- HDU--杭电--1195--Open the Lock--深搜--都用双向广搜,弱爆了,看题了没?语文没过关吧?暴力深搜难道我会害羞?
这个题我看了,都是推荐的神马双向广搜,难道这个深搜你们都木有发现?还是特意留个机会给我装逼? Open the Lock Time Limit: 2000/1000 MS (Java/Others) ...
- 利用深搜和宽搜两种算法解决TreeView控件加载文件的问题。
利用TreeView控件加载文件,必须遍历处所有的文件和文件夹. 深搜算法用到了递归. using System; using System.Collections.Generic; using Sy ...
- 2016弱校联盟十一专场10.3---Similarity of Subtrees(深搜+hash、映射)
题目链接 https://acm.bnu.edu.cn/v3/problem_show.php?pid=52310 problem description Define the depth of a ...
- 2016弱校联盟十一专场10.2---Around the World(深搜+组合数、逆元)
题目链接 https://acm.bnu.edu.cn/v3/problem_show.php?pid=52305 problem description In ICPCCamp, there ar ...
- 2015暑假多校联合---Cake(深搜)
题目链接:HDU 5355 http://acm.split.hdu.edu.cn/showproblem.php?pid=5355 Problem Description There are m s ...
- 深搜+回溯 POJ 2676 Sudoku
POJ 2676 Sudoku Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 17627 Accepted: 8538 ...
随机推荐
- PHP连接mysql8.0出错“SQLSTATE[HY000] [2054] The server requested authentication method unkno…
今天安装安装一个叫得推校园O2O系统的使劲都说连接不上服务器. 下面是安装说明,我直接进行3步骤,导入数据库配置文件,结果就显示题目报错的内容 安装说明: 直接输入程序目录即可 http://loca ...
- hdu 4018 Parsing URL(字符串截取)
题目 以下引用自百度百科: sscanf 的相关用法 头文件:#include<stdio.h> 1. 常见用法. 1 2 3 charbuf[512]; sscanf(" ...
- 18清明校内测试T3
扫雷(mine) Time Limit:1000ms Memory Limit:128MB 题目描述 rsy最近沉迷于一款叫扫雷的游戏. 这个游戏是这样的.一开始网格上有n*m个位置,其中有一些位 ...
- uva 1583 Digit Generator(Uva-1583)
题目不再写入了,vj:https://vjudge.net/problem/UVA-1583#author=0 主要讲的是找一个数的小于它的一个数,小于它的那个数每一位加起来再加上那个数就会等于原来的 ...
- Laravel-Action 对代码的改造
前言 以往写过俩篇文章[积德篇] 如何少写PHP "烂"代码 https://segmentfault.com/a/11...举枪消灭"烂代码"的实战案例 ht ...
- C库的制作
1.库的概念:库是一种可执行的二进制形式: 2.分类: 1>静态库 ①.在程序编译时会被连接到目标代码中: ②.程序运行时不再需要该静态库: ③.体积较大: 2>动态库/共享库 ①.在程序 ...
- PAT 1096. Consecutive Factors
Among all the factors of a positive integer N, there may exist several consecutive numbers. For exam ...
- Java基础学习总结(42)——Log4j 2使用教程
1. 去官方下载log4j 2,导入jar包,基本上你只需要导入下面两个jar包就可以了(xx是乱七八糟的版本号): log4j-core-xx.jar log4j-api-xx.jar 2. 导入到 ...
- [POJ2912]Rochambeau(并查集)
传送门 题意: n个人分成三组,玩石头剪子布游戏,同一组的人只能出同样固定的的手势,其中有一个是裁判不属于任何组,可以出任意手势,给出m个信息x op y 表示x,y是从三个组里面随机抽取的或者是裁判 ...
- AngularJS:日期转换字符
JS有很多类库提供日期转换函数,AngularJS也不例外.可以通过$filter来完成转换,方法如下: $filter('date')(sourceDate, "yyyy/MM/dd&qu ...