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 ...
随机推荐
- Windows下Unity安装
安装教程: https://www.paws3d.com/lesson/us-0101/ 问题1: 安装并完成注册后,在网页上能登录,但打开Unity时不能启动成功,一直停留在如下界面 解决方案:断网 ...
- [C#] DataTable 操作汇总(持续更新)
1.DataTable 分组操作 var grow = dt.Select().GroupBy((row1) => { return new { //分组的字段 fieldA = row1[&q ...
- Luogu P3901 数列找不同
由于技术原因,题目我贴不上了,大家点下面的链接自己去看吧^_^ P3901 数列找不同 这题第一眼看去,题面真短,有坑(flag) 在往下面看去,woc数据这么大,你要怎样. 现在一起想想想,超级侦探 ...
- golang实现高阶函数之map
package main import "fmt" func iMap(num []int, f func(a int) int) []int{ var r []int for _ ...
- Boa服务器编译移植
Boa服务器移植 Boa是一种非常小巧的Web服务器,其可执行代码只有大约60KB左右.作为一种单任务Web服务器,Boa只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求.但Boa支 ...
- Django——8 关系表的数据操作 表关联对象的访问 多表查询
Django 关系表中的数据操作 表关联对象的访问 关联对象的add方法 create方法 remove方法 clear方法 多表查询 查询补充 聚合查询 分组查询 F查询 Q查询 关系表的数据操作 ...
- 【Codeforces 63C】Bulls and Cows
[链接] 我是链接,点我呀:) [题意] 给你一个长度为4的数字序列(每个数字都在0~9之间,且不重复出现) 现在让你猜这个长度为4的序列是什么. 猜了之后对方会告诉有几个数字是位置和数字都正确的(猜 ...
- 【codeforces 758D】Ability To Convert
[题目链接]:http://codeforces.com/contest/758/problem/D [题意] 给你一个n进制的数k; 问你它可能的最小的十进制数是多少; [题解] 从右往左; 获取数 ...
- 如何判断windows动态链接库是32还是64位
如果安装过Visual Studio的话,直接打开一个VS提供的控制台窗口,比如VS2012 x64 Native Tools Command Prompt. 用下面的命令查看程序的头部信息:“dum ...
- 开启我的PHP学习之旅
第二课 LAMP: Linux apache ngix PHP 第三课 搭建server方式: 1.集成安装环境 XAMPP软件包:www.apachefriends.org 2.单独配置 第四课 X ...