A - Comunicating the Tibet Gym - 101492A

Gym - 101492A

题意:有n个城市,一共有m条边,对每个城市编号,如果相邻城市的数小于等于k且不相等则输出所有城市编号,否则输出-1;

题解:dfs,对于每个点,判断相邻的有没有填过当前数,如果填过则当前数不能填,如果所有的数都不能填则输出-1;

#include
#include
#include
#include
#include
#include
using namespace std;
vectora[50005];
int vis[50005];
int n,m,k;
void dfs(int u)
{
	if(vis[u]>-1) return;  //如果访问过当前点
	int g=a[u].size();
	for(int i=1;i<=k+1;i++)
	{
		int j;
		for(j=0;jk)
		{
			flag=1;
			break;
		}
	}
	if(flag) printf("-1\n");
	else 
	{
		for(int i=1;i<=n;i++)
		{
			printf("%d\n",vis[i]);
		}
	}
	return 0;	
}

你可能感兴趣的:(dfs)