标签:错误 namespace ace 整数 图像 分割 pac size 水题
1 2
0 3
这四个点属于同一个区域。因为0 1,1 2,2 3都是同一区域,所以0 3也是同一区域
3 4 1 2 0 0 0 0 0 2 2 0 0 2 2 0 0 0
3
1 #include<iostream> 2 #include<queue> 3 #include<cstring> 4 #include<cmath> 5 using namespace std; 6 int H, W, M; 7 int a[60][60]; 8 bool vis[60][60]; 9 int dirx[4] = {0,0,1,-1}; 10 int diry[4] = {1,-1,0,0}; 11 void dfs(int x, int y){ 12 for(int i = 0; i < 4; i++){ 13 int nx = x+dirx[i], ny = y+diry[i]; 14 if(a[nx][ny]!=-1&&!vis[nx][ny]&&abs(a[nx][ny]-a[x][y])<=M){ 15 vis[nx][ny] = true; 16 dfs(nx, ny); 17 } 18 } 19 } 20 int main(){ 21 while(1){ 22 cin>>H>>W>>M; 23 memset(a,-1,sizeof(a)); 24 memset(vis,0,sizeof(vis)); 25 if(H == 0) return 0; 26 int i, j; 27 for(i = 1; i <= H; i++) 28 for(j = 1; j <= W; j++) 29 cin>>a[i][j]; 30 int ans = 0; 31 for(i = 1; i <= H; i++) 32 for(j = 1; j <= W; j++){ 33 if(!vis[i][j]){ 34 dfs(i, j); 35 ans++; 36 } 37 } 38 cout<<ans<<endl; 39 } 40 return 0; 41 }
备注:希望考试也都是这种水题。。 最开始犯了个愚蠢错误是第33行的大括号忘了加了orz
标签:错误 namespace ace 整数 图像 分割 pac size 水题
原文地址:https://www.cnblogs.com/fangziyuan/p/13162019.html