博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA 1613 K-Graph Oddity
阅读量:6840 次
发布时间:2019-06-26

本文共 1045 字,大约阅读时间需要 3 分钟。

题意;

  在一个n个点的无向连通图中,n是奇数,k是使得所有点的度数不超过k的最小奇数,询问一种染色方案,使得相邻点的颜色不同。

分析:

  k=所有点中最大的入度。如果最大入度是偶数,则k+1。每个点可选择的颜色是k-他的入度。之后进行染色。先从可选择颜色少的点进行染色,这样最后一个点一定有颜色可以染。

代码:

  

#include 
#include
#include
#include
#include
using namespace std; int n,m; int k; int vis[10010]; int color[10010]; vector
g[10010]; int main() { while(~scanf("%d%d",&n,&m)) { int i,j; for(i=1;i<=n;i++) { g[i].clear(); } memset(vis,0,sizeof(vis)); memset(color,0,sizeof(color)); int maxd=0; for(i=1;i<=m;i++) { int x,y; scanf("%d%d",&x,&y); vis[x]++; vis[y]++; g[x].push_back(y); g[y].push_back(x); maxd=max(max(vis[x],vis[y]),maxd); } if(maxd%2==0) k=maxd+1; else k=maxd; for(i=1;i<=n;i++) { vis[i]=k-vis[i]; } for(i=1;i<=n;i++) { int p; int min_degree=20000; for(j=1;j<=n;j++) { if(color[j]==0&&min_degree>vis[j]) { min_degree=vis[j]; p=j; } } int map[10010]; memset(map,0,sizeof(map)); for(j=0;j

转载于:https://www.cnblogs.com/137033036-wjl/p/4934240.html

你可能感兴趣的文章
设计模式学习每天一个——Factory模式 和 Abstract Factory模式
查看>>
Java RTTI与反射(参照Java编程思想与新浪博客)
查看>>
(三)Sass和Compass--制作精灵图片
查看>>
C#中数组、ArrayList和List三者的区别
查看>>
机器学习(Machine Learning)&深度学习(Deep Learning)资料
查看>>
HDU 1028 HDU Ignatius and the Princess III
查看>>
关于最长公共子序列的执行过程
查看>>
postgresql----JSON类型和函数
查看>>
SVN项目锁定解决方案
查看>>
[CODEVS] 2189 数字三角形W
查看>>
cannot find module 'cordova-common'
查看>>
面向对象数据库NDatabase_初识
查看>>
【转】POJ 2104 K-th Number(2)
查看>>
【转】Mutex使用方法(精辟)
查看>>
虚析构函数的使用
查看>>
将 Shiro 作为应用的权限基础
查看>>
第十一周例行报告
查看>>
ios程序连接真机调试
查看>>
A*寻路算法的探寻与改良(三)
查看>>
KVM基础功能——Cpu配置
查看>>