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 ...
随机推荐
- SSH技术介绍和Xshell公钥远程登陆
SSH简介 传统的网络服务程序,比如FTP,POP,Telnet,本质上都是不安全的,因为它们在网络上用明文传送数据.用户账号和用户口令,很容易受到中间人攻击方式的攻击,攻击者会冒充真正的服务器接收用 ...
- SQL上门2
SQL高级教程学习 MySQL的字符匹配和其他数据库不同,一下语句查找(第一个字符不是h,第三个字符是m)不能用“!” select * from country where countryname ...
- ubuntu下Apache2配置
Ubuntu下Apache2的CGI简单配置:http://blog.csdn.net/a623891391/article/details/47170355 Ubuntu Apache的安装和配置以 ...
- jdk8--十大新特性
https://www.cnblogs.com/dennyzhangdd/p/6722445.html 一.十大特性 1.Lambda表达式 2.Stream函数式操作流元素集合 3.接口新增:默认方 ...
- windows下db2的一些使用心得(不含安装)
1.安装完成后开始菜单栏里会有一个 DB2 Command Window - Administrator 打开这个命令窗口 2.db2 db2,启动 3.list databse directory ...
- POJ 1821 Fence
Fence Time Limit: 1000ms Memory Limit: 30000KB This problem will be judged on PKU. Original ID: 1821 ...
- (43). Spring Boot动态数据源(多数据源自动切换)【从零开始学Spring Boot】
在上一篇我们介绍了多数据源,但是我们会发现在实际中我们很少直接获取数据源对象进行操作,我们常用的是jdbcTemplate或者是jpa进行操作数据库.那么这一节我们将要介绍怎么进行多数据源动态切换.添 ...
- MyBatis 3在XML文件中处理大于号小于号(<>)的方法(转)
说明:以下方式支持XML和注解的方式. 一. 用了转义字符把>和<替换掉. AND start_date <= CURRENT_DATE AND end_date >= CUR ...
- [转]十五天精通WCF——第十三天 用WCF来玩Rest
在我们玩wcf的时候,都会潜意识的觉得wcf就是通过soap协议交换消息的,并且可以在basic,tcp,msmq等等绑定中任意切换, 牛逼的一塌糊涂,但是呢,如果说哪一天wcf不再使用soap协议, ...
- discuz新的单点论坛(不依赖UCenter)
discuz 本身提供UCENTER用户中心能够实现单点登录. 可是其它应用要单点登录到discuz还是存在若干问题: 须要2次激活.可能造成server无响应,论坛显示的最新注冊用户无法同步更新,官 ...