题目要求k>=最大度数;
观察,颜色数量和度数的关系,得颜色数=最大度数+1(偶数)//最大度数(奇数) 可以满足染色关系
一个点和周围的点的颜色数加起来最大为它的度数+1;
 k=所有点中最大的度。如果最大入度是偶数,则k+1。
证明:当最大度数为奇数n,设点u所连n个点,点u为1,n-1个点不一样,1个点和某个点相同(2-n),那么其他n-1个点可以相连,度数n-2+1=n-1,如果再连这个相同点,度数为n;然而此时一共有n+1个点,为偶数,所以要再加一个点
如果加到这个点(新的n),最大度数改变,不可以;加到其他点,也不能超过n,所以一定有两个点没有直接相连,交换没有直接相连的点和(新的n那个点),就满足了条件
策略:dfs

k = (max(deg+1,deg+1+n))|1;

#include <iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn = ;
const int maxm = ; //为啥开这么大....用100005re int head[maxn],to[maxm],nxt[maxm],col[maxn],ecnt,deg[maxn];
int vis[maxn];
int k;
void addEdge(int u,int v)
{
deg[u]++;
k=max(k,deg[u]);
to[ecnt] = v;
nxt[ecnt] = head[u];
head[u] = ecnt++;
}
void dfs(int u)
{
for(int i = head[u]; i!=-; i= nxt[i])
vis[col[to[i]]] = u; //u的连接点的颜色都标记为u,不能用 for(int i = ; i <= k; i++)
if(vis[i] != u)
{
col[u] = i;
break;
} for(int i = head[u]; i!=-; i= nxt[i]){
if(col[to[i]]) continue;
dfs(to[i]);
}
} int main()
{
int n,m;
while(scanf("%d",&n)==){
k=;
scanf("%d",&m);
memset(head,-,sizeof(head));
memset(deg,,sizeof(deg));
memset(col,,sizeof(col));
ecnt = ; while(m--){
int u,v;
scanf("%d %d",&u,&v);
addEdge(u,v); addEdge(v,u);
} k = k|;
memset(vis,,sizeof(vis)); dfs();
printf("%d\n",k);
for(int i = ; i <= n; i++)
printf("%d\n",col[i]);
cout<<endl;
}
return ;
}

最新文章

  1. avascript中的this与函数讲解
  2. ECMAScript 位运算符
  3. AdaBoost
  4. NOI题库分治算法刷题记录
  5. 关于Python脚本开头两行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定文件编码类型
  6. c++工程vs导入工程时发生LNK1207
  7. JavaScript基于对象(面向对象)&lt;一&gt;类和对象
  8. map初始化定时器
  9. Python练习题 029:Project Euler 001:3和5的倍数
  10. C# 网络编程之豆瓣OAuth2.0认证具体解释和遇到的各种问题及解决
  11. MySql可视化工具MySQL Workbench使用教程
  12. 嵌入式Linux引导过程之1.2——Xloader的XLOADER_ENTRY
  13. Java代码风格和在idea中的一些设置
  14. 微信小程序域名配置问题
  15. mysql 按照月份自动创建表,以年和月为表明,动态生成。
  16. Java ThreadPool的正确打开方式花钱的年华 | 江南白衣(5星推荐)
  17. Android自定义布局的背景在多分辨率的情况下设置fill_parent时背景不能够横向全屏的问题解决
  18. C#的async和awaiit的一些记录
  19. Discuz x3.2七牛远程附件设置
  20. String、StringBuffer与StringBuilder区别

热门文章

  1. NOIP2009 靶型数独
  2. HNOI2008 越狱 (组合数学)
  3. NOIP2005题解
  4. 我自己比较习惯的Watir自动化测试代码管理方式
  5. &quot;Activity&quot; 总结
  6. JAVA 布局控制
  7. HTTP node静态资源请求加载demo
  8. python接口自动化(三十八)-python操作mysql数据库(详解)
  9. 两行代码搞定网站gzip压缩
  10. bzoj 3573: [Hnoi2014]米特运输【树形dp+瞎搞】