bool dfs(int u,int col)
{
vis[u]=true;
a[u]=col;
t[col]++;
for (int i=0;i<g[u].size();i++)
{
int v=g[u][i];
if (vis[v]&&a[v]==a[u])
return false;
else
if (!vis[v] && !dfs(v,1-col)) return false;
}
return true;
}
int main()
{
for (i=1;i<=n;i++)
if (!vis[i])
{
t[0]=t[1]=0;
if (!dfs(i,0))
{
printf("Impossible\n");
return 0;
}
}
return 0;
}
DFS黑白染色
最新推荐文章于 2023-03-17 16:23:18 发布