1 条题解
-
0
#include<bits/stdc++.h> //声名头文件 using namespace std; #define ll long long int n,m,Map[510][510],ans=0; bool vis[510][510]; int movex[4]={1,0,-1,0}; int movey[4]={0,1,0,-1}; map<string,int>mp; void dfs(int x,int y,string &w) { for(int i=0;i<4;i++) { int nx=movex[i]+x; int ny=movey[i]+y; if(nx>=1&&nx<=n&&ny>=1&&ny<=m) { if(vis[nx][ny]==true||Map[nx][ny]!=Map[x][y]) { continue; } w+=char(i+'0'); vis[nx][ny]=true; dfs(nx,ny,w); } } w+=' '; } int main() //主函数是程序的入口 { //freopen("文件.in","r",stdin); //freopen("文件.out","w",stdout); ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n>>m; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { cin>>Map[i][j]; } } for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if(!vis[i][j]) { vis[i][j]=true; string w;//w串处理连接 dfs(i,j,w); if(!mp[w]) ans++; mp[w]=1; } } } cout<<ans; return 0; }
信息
- ID
- 3535
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 普及
- 标签
- 递交数
- 1
- 通过
- 1
- 上传者