L2-023 图着色问题 (25 分)(图的遍历)

简介: L2-023 图着色问题 (25 分)(图的遍历)

描述:


图着色问题是一个著名的NP完全问题。给定无向图G=(V,E),问可否用K种颜色为V中的每一个顶点分配一种颜色,使得不会有两个相邻顶点具有同一种颜色?

但本题并不是要你解决这个着色问题,而是对给定的一种颜色分配,请你判断这是否是图着色问题的一个解。


输出:


输入在第一行给出3个整数V(0<V≤500)、E(≥0)和K(0<K≤V),分别是无向图的顶点数、边数、以及颜色数。顶点和颜色都从1到V编号。随后E行,每行给出一条边的两个端点的编号。在图的信息给出之后,给出了一个正整数N(≤20),是待检查的颜色分配方案的个数。随后N行,每行顺次给出V个顶点的颜色(第i个数字表示第i个顶点的颜色),数字间以空格分隔。题目保证给定的无向图是合法的(即不存在自回路和重边)。


输出格式:


对每种颜色分配方案,如果是图着色问题的一个解则输出Yes,否则输出No,每句占一行。

输入样例:


输入样例:


6 8 3
2 1
1 3
4 6
2 5
2 4
5 4
5 6
3 6
4
1 2 3 3 1 2
4 5 6 6 4 5
1 2 3 4 5 6
2 3 4 2 3 4


输出样例:



Yes
Yes
No
No
#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long ull;
typedef long long ll;
const ll maxx = 1e18;
const int N = 1e6+100;
const int p = 1e4+10;
const double eps = 1e-8;
vector<int>ve[1001];
int n,m,k;
int a,b;
int co[N];
int q;
map<int,int>mp;
int judge()
{
  for(int i=1;i<=n;i++)
  {
    int len=ve[i].size();
    for(int j=0;j<len;j++)
    {
      if(co[i]==co[ve[i][j]])
      return 0;
    }//判断临边是否有颜色相同存在
  }
  return 1;
}
int main()
{ 
  cin>>n>>m>>k;
  for(int i=1;i<=m;i++)
  {
    cin>>a>>b;
    ve[a].push_back(b);
    ve[b].push_back(a);
  }//建立无向图
  cin>>q;
  for(int i=1;i<=q;i++)
  {
    mp.clear();
    for(int j=1;j<=n;j++)
    {
      cin>>co[j];
      mp[co[j]]++;
    }
    if(mp.size()!=k)//判断颜色数是否合法
    {
      cout<<"No"<<endl;
    }
    else
    {
      if(judge()==1)
      {
        cout<<"Yes"<<endl;
      }
      else
      {
        cout<<"No"<<endl;
      }
    }
  }
  return 0;
}

目录
相关文章
|
2月前
论多段图的最短路径问题(我认为本质上还是暴力枚举法)
本文讨论了多段图最短路径问题的解决方法,认为本质上是使用暴力枚举法,通过逐步计算每个阶段点的最短距离来确定从起点到终点的最短路径。
49 1
论多段图的最短路径问题(我认为本质上还是暴力枚举法)
|
7月前
6366. 在网格图中访问一个格子的最少时间(dijkstra在矩阵上的运用)
6366. 在网格图中访问一个格子的最少时间(dijkstra在矩阵上的运用)
|
算法 测试技术 C++
C++算法:图中的最短环
C++算法:图中的最短环
|
存储 索引
树与图中的dfs和bfs—— AcWing 846. 树的重心 AcWing 847. 图中点的层次
树与图中的dfs和bfs—— AcWing 846. 树的重心 AcWing 847. 图中点的层次
82 0
|
算法
|
存储
L2-023 图着色问题 (25 分)
L2-023 图着色问题 (25 分)
125 0
L2-023 图着色问题 (25 分)
【CCCC】L2-023 图着色问题 (25分),图的染色判定,遍历
【CCCC】L2-023 图着色问题 (25分),图的染色判定,遍历
186 0
|
算法
回溯法——图m染色问题
回溯法——图m染色问题
219 0

热门文章

最新文章