2 条题解
-
2
#include<bits/stdc++.h> using namespace std; int n,b[710][710],sum; char a[710][710]; int nextx[8]={-1,0,1,-1,1,-1,0,1}; int nexty[8]={-1,-1,-1,0,0,1,1,1}; void f(int x,int y,int step){ if(a[x][y]=='1'&&step==0) { sum++; } if(a[x][y]=='1'){ for(int i=0;i<8;i++){ int nx=x+nextx[i]; int ny=y+nexty[i]; if(nx<1||nx>n||ny<1||ny>n) continue; if(b[nx][ny]==0){ b[nx][ny]=1; f(nx,ny,1); } } } } int main(){ cin>>n; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) cin>>a[i][j]; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { if(b[i][j]==0){ b[i][j]=1; f(i,j,0); } } cout<<sum; }
信息
- ID
- 1064
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 7
- 标签
- 递交数
- 203
- 已通过
- 45
- 上传者