CE求调
  • 板块灌水区
  • 楼主xpg007
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/6/7 15:53
  • 上次更新2024/6/7 19:37:27
查看原帖
CE求调
1024680
xpg007楼主2024/6/7 15:53

P10378 [GESP202403 七级] 交流问题

CE code

#include <bits/stdc++.h>
using namespace std;
struct node{
	int x, y;
};
int sx, sy, a[501][501];
int dx[4] = {0, 0, 1, -1};
int dy[4] = {1, -1, 0, 0};
bool vis[501][501];
vector<node> v;
set<vector<node> > s;
void dfs(int x, int y, int color){
	if (vis[x])
		return ;
	vis[x][y] = true;
	v.push_back({x - sx, y - sx});
	for (int i = 0; i < 4; i++){
		int tx = x + dx[i];
		int ty = y + dy[i];
		if (a[tx][ty] == color)
			dfs(tx, ty, color);
	}
}
int main(){
	int n, m;
	cin >> n >> m;
	for (int i = 1; i <= n; i++)
		for (int j = 1; j <= m; j++)
			cin >> a[i][j];
	for (int i = 1; i <= n; i++)
		for (int j = 1; j <= m; j++)
			if (a[i][j] != 0){
				v.clear();
				sx = i, sy = j; 
				dfs(i, j, a[i][j]);
				s.insert(v);
			}
	cout << s.size();
	return 0; 
}

第 36 行

2024/6/7 15:53
加载中...