YTU.3133: 进阶递归之引爆炸弹

3133: 进阶递归之引爆炸弹

Time Limit: 1 Sec   Memory Limit: 64 MB
Submit: 22   Solved: 15
[ Submit][ Status][ Web Board]

Description

在一个n * m 的方格地图上,某些方格上放置着炸弹。手动引爆一个炸弹以后,炸弹会把炸弹所在的行和列上的所有炸弹引爆,被引爆的炸弹又能引爆其它炸弹,这样连锁下去。

第一行输入两个整数nm,(1 <= n <= 1000 , 1 <= m <=1000)用空格隔开,接下来n行,每一行输入一个长度为m的字符串,表示地图信息。0表示没有炸弹,1表示有炸弹。

Output

输出一个整数,表示最少需要手动引爆的炸弹数。

Sample Input

5 5
00010
00010
01001
10001
01000

Sample Output

2

HINT

尝试一下递归的连锁反应,多重递归调用。

分析:先遍历数值,找到第一个炸弹并引爆它,然后找它的同行同列有没有可以引爆的炸弹,有则引爆。

AC代码:
#include 
using namespace std;
int cnt;//需要手動引爆的炸彈數
int n,m;
int a[1001][1001];
void dfs(int x,int y)
{
    if(x>=n||y>=m)//出口
    return ;
   for(int j=0;j


需要注意题目输入矩阵数据时没有空格分割,这是一个细节。

你可能感兴趣的:(YTU.3133: 进阶递归之引爆炸弹)