天梯赛 L2-023. 图着色问题
2024-08-26 20:30:18
题解:用dfs遍历图的每条边就好,这里注意要求颜色的个数为k
#include <cstdio>
#include <iostream>
#include <cstring>
#include <queue>
#include <map>
#include <vector>
#include <set>
using namespace std;
const int maxn=;
int v,e,k;
vector<int> edge[maxn];
int val[maxn];
int vis[maxn];
int flag;
void dfs(int now,int fa)
{
if(flag==) return ;
int len=edge[now].size();
for(int i=;i<len;i++)
{
int next=edge[now][i];
if(val[now] == val[next])
{
flag=;
return;
}
if(next != fa && vis[next] == )
{
vis[next]=;
dfs(next,now);
}
}
}
int main()
{
scanf("%d %d %d",&v,&e,&k);
for(int i=;i<=e;i++)
{
int a,b;
scanf("%d %d",&a,&b);
edge[b].push_back(a);
edge[a].push_back(b);
}
int q;
cin>>q;
while(q--)
{
set<int> st;
memset(vis,,sizeof(vis));
flag=;
for(int i=;i<=v;i++)
{
scanf("%d",&val[i]);
st.insert(val[i]);
}
if(st.size() != k) cout<<"No"<<endl;
else
{
for(int i=;i<=v;i++)
{
if(flag==) break;
if(!vis[i])
{
vis[i]=;
dfs(i,i);
}
}
if(flag==) cout<<"No"<<endl;
else cout<<"Yes"<<endl;
}
}
return ;
}
最新文章
- 轮播插件unsilder 源码解析(二)
- .NET Core Roadmap
- JS匿名函数的理解
- [Guava官方文档翻译] 7. Guava的Immutable Collection(不可变集合)工具 (Immutable Collections Explained)
- AHB总线和APB总线
- 【Better Code】面向切面编程
- 解决:用PivotGridControl 与 chartControl 配合使用,Series最大只显示10条
- android jni (5)——Field &; Method -->; Accessing Mehtod
- 简洁的PHP操作SQLite类
- Android离线缓存
- 你好 JSONP !!!!
- MyBatis之基于XML的属性与列名映射
- Scrapy 框架 配置文件
- SD卡两种操作模式在项目中应用的比较
- 2.1Python数据处理篇之---内建有关数学的函数
- go标准库的学习-text/template
- VS2010程序崩溃,报错Unhandled exception at **.exe:0xC0000005: Access violation reading location 0x000000008899.
- 「PKUSC2018」最大前缀和(状压dp)
- VS2010/MFC编程入门之三十六(工具栏:工具栏资源及CToolBar类)
- Serega and Fun CodeForces - 455D (分块 或 splay)
热门文章
- button按钮的状态为disabled禁用状态,click事件无法触发,但是为什么touchstart下却依然可以触发
- bower 安装依赖提示 EINVRES Request to https://bower.herokuapp.com/packages/xxx failed with 502
- Maven Multi-Module Example
- ubuntu上安装jdk
- 实战一:LoadRunner性能测试利器
- window TOMCAT 端口被占用了怎么办?
- 23andme的申请流程和注意事项
- Nginx限制ip访问
- [转]Xmind 8 pro 软件破解版
- [转]jkeyll的安装步骤