#14235: 哪裡有錯?


buanyz03 (張晁瑋)

學校 : 新北市立板橋高級中學
編號 : 2629
來源 : [114.25.190.198]
最後登入時間 :
2023-09-06 15:43:50
c231. 踩地雷 -- 2016台北市資訊學科能力複賽 | From: [60.248.142.208] | 發表日期 : 2018-07-02 17:08

#include <iostream>
using namespace std;
int M[10002][10002],h,w,dx[8]={1,1,0,-1,-1,-1,0,1},dy[8]={0,1,1,1,0,-1,-1,-1};
void dfs(int y,int x)
{
for(int k=0;k<8;++k)
{
if(M[y+dy[k]][x+dx[k]]==1)
{
M[y+dy[k]][x+dx[k]]=-1;
dfs(y+dy[k],x+dx[k]);
}
}
}
int main()
{
int c,x,y,count;
while(cin>>h>>w>>c)
{
for(int i=0;i<=h+1;++i)
{
for(int j=0;j<=w+1;++j)
{
M[i][j]=-1;
}
}
while(c--)
{
cin>>y>>x;
M[y][x]=1;
}
count=0;
for(int i=1;i<=h;++i)
{
for(int j=1;j<=w;++j)
{
if(M[i][j]==1)
{
count+=1;
M[i][j]=-1;
dfs(i,j);
}
}
}
cout<<count<<endl;
}
}

我對題目的理解應該沒有問題吧

 
#17735: Re:哪裡有錯?


p3a_owhj (阿普二信)

學校 : 不指定學校
編號 : 39897
來源 : [36.227.79.178]
最後登入時間 :
2024-06-04 22:09:36
c231. 踩地雷 -- 2016台北市資訊學科能力複賽 | From: [218.161.13.235] | 發表日期 : 2019-05-13 00:36



我對題目的理解應該沒有問題吧

 


應該是理解有誤, 是踏到八方的感測器就會爆,而且爆的這九格中也有 另一顆的 感測器,也會再引爆另一顆

所以 dfs的範圍要調整

 
ZeroJudge Forum