ZOJ Problem Set - 2922 Bombs

来源:互联网 发布:湖北中科网络欠款 编辑:程序博客网 时间:2024/04/26 09:17

一道简单题,注意不要SE,就是数组访问越界。

从后面一直搜索下来,按纵列。

两个函数就可以搞定!

水了!

#include <iostream>using namespace std;int map[1001][1001],m[1001][1001];void setx(int x,int y);void sety(int x,int y){      int i;      for(i = x;i >= 0;i --)      {            if(m[i][y] == 0)            {                  m[i][y] = 1;                  setx(i,y);            }      }}void setx(int x,int y){      int i;      for(i = y;i >= y-map[x][y];i --)      {            if(i>=0&&m[x][i] == 0)            {                  m[x][i] = 1;                  setx(x,i);                  sety(x,i);            }      }}int main(){    int i,j,cot,ma,n;    while(cin>>n>>ma)    {          cot = 0;          for(i = 0;i < n;i ++)          for(j = 0;j < ma;j ++)          {                cin>>map[i][j];                if(map[i][j] == 0)                m[i][j] = 1;                else m[i][j] = 0;          }          for(i = ma-1;i >=0;i --)          for(j = n-1;j >=0;j --)          {                if(m[j][i]==0)                {                      cot ++;                      setx(j,i);                      sety(j,i);                }          }          cout<<cot<<endl;    }    return 0;}


原创粉丝点击