对比代码区别
  • 板块学术版
  • 楼主iamajcer
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/1/20 19:47
  • 上次更新2025/1/20 21:47:50
查看原帖
对比代码区别
629377
iamajcer楼主2025/1/20 19:47

下面这份A掉了。

for (int i=0; i<=n; i++)
	{
		for (int j=0; j<=m; j++)
		{
			if (!vis2[b[i][j]]) vis2[b[i][j]]=1, n2++;
			if (b[i][j]!=b[i+1][j]) a[b[i][j]].push_back(b[i+1][j]), a[b[i+1][j]].push_back(b[i][j]);
			if (b[i][j]!=b[i][j+1]) a[b[i][j]].push_back(b[i][j+1]), a[b[i][j+1]].push_back(b[i][j]);
		}
	}

下面这份WA掉了。

int dx[]={-1, 0, 0, 1}, dy[]={0, -1, 1, 0};

....

for (int i=0; i<=n; i++)
	{
		for (int j=0; j<=m; j++)
		{
			if (!vis2[b[i][j]]) vis2[b[i][j]]=1, n2++;
			for (int k=0; k<4; k++)
			{
				int nx=i+dx[k], ny=j+dy[k];
				if (nx>=0 && nx<=n+1 && ny>=0 && ny<=m+1)
				{
					if (b[i][j]!=b[nx][ny])
					{
						if (vis[b[i][j]][b[nx][ny]]==0) vis[b[i][j]][b[nx][ny]]=1, a[b[i][j]].push_back(b[nx][ny]);
						if (vis[b[nx][ny]][b[i][j]]==0) vis[b[nx][ny]][b[i][j]]=1, a[b[nx][ny]].push_back(b[i][j]);
					}
				}
			}
		}
	}

感觉没区别,都是覆盖了 n, m 的矩阵啊?。

2025/1/20 19:47
加载中...