UVa 1613 k度图的着色(K-Graph Oddity)

该博客介绍了UVa 1613问题,这是一个关于给奇数节点的连通图进行染色的题目。文章指出最小奇数k并不影响着色,关键在于找到一个起点,采用1,2交替赋值的方式进行深搜染色,保证相邻节点颜色不同。代码实现被提及,但并未展示。" 133018401,19974254,WebRTC入门指南:实时通信技术解析,"['WebRTC', '实时通信', '浏览器开发', '移动开发', 'API']
摘要由CSDN通过智能技术生成

题意:
输入一个n个节点m条边的连通图,n保证为奇数。设k为最小的奇数,使得每个点的度数不超过k,你的任务是把图中的结点涂上颜色1~k,使得相邻节点的颜色不同。多解任意输出,输入保证有解。

分析:
这题听莫名其妙的,问的k是度,但是度和着色是没有关系的(这里可以求指正,本人认为没关系),例如 可以从1放出4条线,这个时候按图中的意思就是k = 5了 可是只需要1是2 其余放出射线的终点均为1即可。
然后找一个起点,深搜到底,一直1,2,1,2,1,2,这样赋值下去,这样是最优赋值(感觉,没有证明,读者有兴趣可以证明)

原本以为和度有关系,但是其实是没有的,因此Degree里的id是没有用的。

代码:

#include<bits/stdc++.h>
#define LL long long
#define ms(s) memset(s, 0, sizeof(s))
using namespace std;
const int maxn = 1e4 + 10;

struct Degree {
   
    int d;
    int id;
    friend bool operator < (const Degree& d1, const Degree& d2) {
   
        return d1.d > d2.d;
    }
}d[maxn];

int vis[maxn];
bool v[maxn];
int k;
unordered
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值