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

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

输入格式:

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

输出格式:

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

输入样例:

  1. 6 8 3
  2. 2 1
  3. 1 3
  4. 4 6
  5. 2 5
  6. 2 4
  7. 5 4
  8. 5 6
  9. 3 6
  10. 4
  11. 1 2 3 3 1 2
  12. 4 5 6 6 4 5
  13. 1 2 3 4 5 6
  14. 2 3 4 2 3 4

输出样例:

  1. Yes
  2. Yes
  3. No
  4. No

这题就是建个图,然后跑一下相连的节点颜色不同,还要判断颜色种类数必须为K,不能多也不能少。

代码:

  1. //2-3
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4. const int maxn=1e6+;
  5. typedef long long ll;
  6.  
  7. struct node{
  8. int to,nex;
  9. }edge[*maxn];
  10.  
  11. int cnt;
  12. int head[*maxn];
  13. int qw[*maxn];
  14.  
  15. void add(int u,int v)
  16. {
  17. edge[cnt].to=v;
  18. edge[cnt].nex=head[u];
  19. head[u]=cnt++;
  20. }
  21.  
  22. int main()
  23. {
  24. int n,m,x;
  25. cin>>n>>m>>x;
  26. for(int i=;i<=m;i++){
  27. int a,b;
  28. cin>>a>>b;
  29. add(a,b);
  30. add(b,a);
  31. }
  32. int q;
  33. cin>>q;
  34. while(q--){
  35. set<int> st;
  36. for(int i=;i<=n;i++){
  37. cin>>qw[i];
  38. st.insert(qw[i]);
  39. }
  40. int flag=;
  41. if(st.size()!=x) flag=;
  42. for(int i=;i<=n;i++){
  43. for(int j=head[i];j!=;j=edge[j].nex){
  44. if(qw[edge[j].to]==qw[i]){
  45. flag=;break;
  46. }
  47. }
  48. }
  49. if(!flag) cout<<"Yes"<<endl;
  50. else cout<<"No"<<endl;
  51. }
  52. }

OK,关机,准备上床瘫,早睡,明天天梯赛。

模拟赛的时候,熬夜到4点,打比赛的时候整个人都要死了,题目没看清楚的,写捞的,错了好多,罪过罪过。

虽然我是最菜的,但是不能因为睡觉让我更菜,到时候怕是要被队友们祭天了。

再见,水完了。

PTA L2-023 图着色问题-前向星建图 团体程序设计天梯赛-练习集的更多相关文章

  1. PTA L2-001 紧急救援-最短路(Dijkstra)多条最短路找最优解并输出路径 团体程序设计天梯赛-练习集

    L2-001 紧急救援 (25 分)   作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图.在地图上显示有多个分散的城市和一些连接城市的快速道路.每个城市的救援队数量和每一条连接两个城市的快 ...

  2. PTA L2-006 树的遍历-二叉树的后序遍历+中序遍历,输出层序遍历 团体程序设计天梯赛-练习集

    L2-006 树的遍历(25 分)   给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列.这里假设键值都是互不相等的正整数. 输入格式: 输入第一行给出一个正整数N(≤),是二叉树中结点的 ...

  3. PTA L2-002 链表去重 团体程序设计天梯赛-练习集

    L2-002 链表去重(25 分)   给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉.即对每个键值 K,只有第一个绝对值等于 K 的结点被保留.同时,所有被删除的结点须被保存在另 ...

  4. PTA L2-004 这是二叉搜索树吗?-判断是否是对一棵二叉搜索树或其镜像进行前序遍历的结果 团体程序设计天梯赛-练习集

    L2-004 这是二叉搜索树吗? (25 分)   一棵二叉搜索树可被递归地定义为具有下列性质的二叉树:对于任一结点, 其左子树中所有结点的键值小于该结点的键值: 其右子树中所有结点的键值大于等于该结 ...

  5. PTA L1-020 帅到没朋友 团体程序设计天梯赛-练习集

    L1-020 帅到没朋友(20 分)   当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为太帅而没有朋友.本题就要求你找出那些帅到没有朋友的人. 输入格式: 输入第一行给出一个正整数N(≤),是已 ...

  6. UESTC30-最短路-Floyd最短路、spfa+链式前向星建图

    最短路 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) 在每年的校赛里,所有进入决赛的同 ...

  7. PTA|团体程序设计天梯赛-练习题目题解锦集(C/C++)(持续更新中……)

    PTA|团体程序设计天梯赛-练习题目题解锦集(持续更新中) 实现语言:C/C++:      欢迎各位看官交流讨论.指导题解错误:或者分享更快的方法!! 题目链接:https://pintia.cn/ ...

  8. POJ 1655 Balancing Act ( 树的重心板子题,链式前向星建图)

    题意: 给你一个由n个节点n-1条边构成的一棵树,你需要输出树的重心是那个节点,以及重心删除后得到的最大子树的节点个数size,如果size相同就选取编号最小的 题解: 树的重心定义:找到一个点,其所 ...

  9. 团体程序设计天梯赛L2-023 图着色问题 2017-04-17 09:28 269人阅读 评论(0) 收藏

    L2-023. 图着色问题 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 图着色问题是一个著名的NP完全问题.给定无向图 G ...

随机推荐

  1. linux包安装,解压,压缩,包管理,环境变量

    linux 包安装,解压,压缩,包管理 centoscentos上有系统包管理器yum yum的配置一般有两种方式,一种是直接配置/etc目录下的yum.conf文件,另外一种是在/etc/yum.r ...

  2. hdu4085 Peach Blossom Spring

    Peach Blossom Spring http://acm.hdu.edu.cn/showproblem.php?pid=4085 Time Limit: 10000/5000 MS (Java/ ...

  3. Item 2---遇到构造器具有多个参数时,要考虑用构建器;Builder模式

    问题,面对这种一个构造器具备多个参数的问题,现有的做法是使用重叠构造器的方式,该方式存在的问题: public class NutritionFacts { private final int ser ...

  4. cocos2dx中启用lua脚本

    AppDelegate 的 applicationDidFinishLaunching 方法中加载Lua引擎 bool AppDelegate::applicationDidFinishLaunchi ...

  5. js_一个简单的30分钟循环倒计时

    吐槽段: 需求的变更是千变万化的,至少在你说服和你打交道的那位谁谁谁之前. 创业公司就是这样,产品经理一个想法,就是改改改,管你改起来复杂不复杂,在他们眼里都是非常简单的. 今天的一个小改动需求,把活 ...

  6. spring cloud config 详解

    Spring Cloud 为开发人员提供了一系列的工具来快速构建分布式系统的通用模型 .例如:配置管理.服务发现.断路由.智能路由.微代理.控制总线.一次性Token.全局锁.决策竞选.分布式sess ...

  7. ipython notebook环境搭建

    默认已经装好python基本环境,再进行下面步骤: 1. 下载安装IPython:  c:>pip.exe install ipython 系统就会去网上寻找ipython的包, 进行下载及安装 ...

  8. python基础===成员访问__len__()和__getitem__()

    class A: def __init__(self,*args): self.name = arg pass def __len__(self): return len(self.name) a = ...

  9. 2017多校第9场 HDU 6166 Senior Pan 堆优化Dij

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6166 题意:给你一个有向图,然后给你k个点,求其中一个点到另一个点的距离的最小值. 解法:枚举二进制位 ...

  10. canvas画画板,canvas画五角星,canvas制作钟表、Konva写钟表

    制作一个画画板,有清屏有橡皮擦有画笔可以换颜色 style样式 <head> <meta charset="UTF-8"> <title>画画板 ...