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;
}

目录
相关文章
|
传感器 并行计算 算法
多传感器感知原理解读 | BEVFusion解读(一)
多传感器感知原理解读 | BEVFusion解读(一)
1031 0
|
数据采集 安全 前端开发
视频类音频了网站如何防止被盗
视频类音频了网站如何防止被盗
630 0
|
安全 架构师 编译器
鲲鹏开发重点-–扭转x86乾坤的挑战,ARM64内存模型
因为X86及其CISC架构生态的封闭性,中国市场对未来处理器的选择,将是更开放、更模块化的RISC架构。 鲲鹏处理器就是符合这个潮流的创新产品和生态,将直面一系列挑战,和Apple一样赢得这场挑战,来扭转X86的封闭性的乾坤,创造出中国的处理器新生态。
1548 0
鲲鹏开发重点-–扭转x86乾坤的挑战,ARM64内存模型
|
运维 Kubernetes 安全
云原生安全 — seccomp应用最佳实践
近期针对Linux内核的CVE漏洞频出,CVE-2022-0185、CVE-2022-0185、CVE-2022-0847是威胁评分较高且热度较高的几个典型漏洞,相关的POC/EXP利用代码也已经在互联网上公开披露。对于容器场景来说,攻击者的攻击路径也比较相似,都是利用unshare等高危系统调用在新的usernamespace拿到CAP_SYS_ADMIN等高权限capabilities后利用漏
3070 0
云原生安全 — seccomp应用最佳实践
|
计算机视觉
数字图像处理实验(七)| 形态学图像处理{生成结构元素strel、腐蚀运算imerode、膨胀运算imdilate、开运算imopen、闭运算imclose}(附代码和实验截图、汉字视力表项目、总结)
数字图像处理实验(七)| 形态学图像处理{生成结构元素strel、腐蚀运算imerode、膨胀运算imdilate、开运算imopen、闭运算imclose}(附代码和实验截图、汉字视力表项目、总结)
1371 0
数字图像处理实验(七)| 形态学图像处理{生成结构元素strel、腐蚀运算imerode、膨胀运算imdilate、开运算imopen、闭运算imclose}(附代码和实验截图、汉字视力表项目、总结)
|
Serverless Python
在Python中,用于实现哈希表的数据结构主要是字典(`dict`)
在Python中,用于实现哈希表的数据结构主要是字典(`dict`)
228 1
|
C语言
C 标准库 - <math.h>详解
`&lt;math.h&gt;` 是 C 标准库中的头文件,提供了丰富的数学计算函数和常量。重要常量包括自然常数 `M_E` 和圆周率 `M_PI`。常用函数涵盖指数、对数、幂、平方根、三角及反三角函数等,如 `exp`、`log`、`pow`、`sqrt`、`sin`、`cos` 等。
502 12
|
机器学习/深度学习 人工智能 自然语言处理
全新TextGrad框架:用GPT-4o作引擎,自动优化端到端任务
【7月更文挑战第15天】TextGrad框架利用GPT-4o自动优化AI系统,通过文本反馈调整组件性能,提升问答、编程任务和分子设计等领域的效果。在Proof QA中提升准确率至55%,LeetCode难题解决效率提高20%。虽依赖LLM质量且易用性有限,但展示了强大的潜力,尚处于研究阶段。[arXiv:2406.07496](https://arxiv.org/abs/2406.07496)**
335 1
|
前端开发 JavaScript Java
利用Java Web技术实现实时通信系统的案例分析
利用Java Web技术实现实时通信系统的案例分析
271 1
|
监控 数据可视化 应用服务中间件
Cacti设置流量阀值实现邮件报警
Cacti设置流量阀值实现邮件报警