• 引爆炸弹


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

    输入格式

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

    样例输入 

    5 5
    00010
    00010
    01001
    10001
    01000

    样例输出 :2

    #include <stdio.h>
    #include <iostream>
    #include <math.h>
    #include <string.h>
    using namespace std;
    const double PI=acos(-1.0);
    int n,m;
    int ans;
    int a[105][105];
    bool vx[105],vy[105];
    void dfs(int x,int y){
        a[x][y]=0;
        if(!vx[x]){
         vx[x]=1;
    for(int i=0;i<m;i++){ if(a[x][i]==1){ dfs(x,i); } } } if(!vy[y]){
         vx[y]=1;
    for(int i=0;i<n;i++){ if(a[i][y]==1){ dfs(i,y); } } } } int main(){ cin>>n>>m; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ cin>>a[i][j]; } } for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(a[i][j]==1){ ans++; dfs(i,j); } } } cout<<ans; return 0; }
    
    
  • 相关阅读:
    P3350 [ZJOI2016]旅行者
    P4178 Tree
    P2375 [NOI2014]动物园
    P2827 蚯蚓
    1002: [FJOI2007]轮状病毒
    1070: [SCOI2007]修车
    AtCoder Grand Contest 021完整题解
    Running to the End(Codeforces & AtCoder 百套计划)
    SDWC2017游记
    非传统题初探——AtCoder Practice Contest #B
  • 原文地址:https://www.cnblogs.com/xusi/p/12335880.html
Copyright © 2020-2023  润新知