【习题 8-9 1613】 K-Graph Oddity
【链接】  我是链接,点我呀:) 
 【题意】
在这里输入题意
【题解】
感觉最大度数|1就是最多需要的个数了。
就贪心一下。
然后模拟染色的过程就可以了。
(贪心染色就可以了
(看看周围哪个颜色没有,就用它)
k在dfs之前忘记判断是不是奇数了。。。。
以及忘记清空g
【代码】
#include <bits/stdc++.h>
using namespace std;
const int N = 1e4;
int n,m,du[N+10],k,flag[N+10];
vector <int> g[N+10];
set<int>myset[N+10];
int ma;
void dfs(int x){
    myset[x].clear();
    for (auto y:g[x])
        if (flag[y]!=0){
            myset[x].insert(flag[y]);
        }
    for (int i = 1;i <= k;i++)
        if (myset[x].find(i)==myset[x].end()){
            flag[x] = i;
            break;
        }
    for (auto y:g[x])
        if (flag[y]==0)
            dfs(y);
}
int main(){
	#ifdef LOCAL_DEFINE
	    freopen("rush_in.txt", "r", stdin);
	#endif
	ios::sync_with_stdio(0),cin.tie(0);
    while (cin >> n >> m){
        for (int i = 1;i <= n;i++) {
            g[i].clear();
            du[i] = 0;
            flag[i] = 0;
        }
        for (int i = 1;i <= m;i++){
            int x,y;
            cin >> x >> y;
            g[x].push_back(y);
            g[y].push_back(x);
            du[x]++;du[y]++;
        }
        k = 0;
        for (int i = 1;i <= n;i++)
            k = max(k,du[i]);
        if (!(k&1)) k++;
        dfs(1);
        cout <<k<<endl;
        for (int i = 1;i <= n;i++) cout << flag[i]<<endl;
        cout << endl;
    }
	return 0;
}
												
											【习题 8-9 1613】 K-Graph Oddity的更多相关文章
- 紫书 习题8-9 UVa 1613 (dfs染色+图的性质)
		
这道题一开始我没想什么直接开始染, 但是是for循环一个节点一个节点染, 然后就WA 后了看了https://www.cnblogs.com/jerryRey/p/4702323.html 发现原来还 ...
 - UVA 1613 K度图染色
		
题目 \(dfs+\)证明. 对于题目描述,可以发现\(K\)其实就是大于等于原图中最大度数的最小奇数,因为如果原图度数最大为奇数,则最多颜色肯定为K,而如果原图最大度数为偶数,则\(K\)又是奇数, ...
 - 牛客在线习题:链表的k各节点翻转
		
题目描述 将给出的链表中的节点每\ k k 个一组翻转,返回翻转后的链表如果链表中的节点数不是\ k k 的倍数,将最后剩下的节点保持原样你不能更改节点中的值,只能更改节点本身.要求空间复杂度 \ O ...
 - Problem K: Yikes -- Bikes!
		
http://acm.upc.edu.cn/problem.php?id=2780 昨天做的题,没过……!!!伤心……题意:给你n个单位,n-1组关系,让你单位换算……解题思路:Floyd算法自己听别 ...
 - [Swift]LeetCode787. K 站中转内最便宜的航班 | Cheapest Flights Within K Stops
		
There are n cities connected by m flights. Each fight starts from city u and arrives at v with a pri ...
 - Floyd求最小环!(转载,非原创) 附加习题(原创。)HDU-1599
		
//Floyd 的 改进写法可以解决最小环问题,时间复杂度依然是 O(n^3),储存结构也是邻接矩阵 int mincircle = infinity; Dist = Graph; ;k<nVe ...
 - LeetCode——787. K 站中转内最便宜的航班
		
有 n 个城市通过 m 个航班连接.每个航班都从城市 u 开始,以价格 w 抵达 v. 现在给定所有的城市和航班,以及出发城市 src 和目的地 dst,你的任务是找到从 src 到 dst 最多经过 ...
 - P 算法与 K 算法
		
P 算法与 K 算法 作者:Grey 原文地址: 博客园:P 算法与 K 算法 CSDN:P 算法与 K 算法 说明 P 算法和 K 算法主要用来解决最小生成树问题,即:不破坏连通性删掉某些边,使得整 ...
 - poj3311 Hie with the Pie (状态压缩dp,旅行商)
		
Hie with the Pie Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 3160 Accepted: 1613 ...
 
随机推荐
- Http协议与TCP协议理解(转载的)
			
TCP协议对应于传输层,而HTTP协议对应于应用层,从本质上来说,二者没有可比性.Http协议是建立在TCP协议基础之上的,当浏览器需要从服务器获取网页数据的时候,会发出一次Http请求.Http会通 ...
 - bzoj1051 [HAOI2006]受欢迎的牛 tarjan&&缩点
			
题目描述 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就是一头明星奶牛.所有奶 牛都是自恋狂,每头奶牛总是喜欢自己的.奶牛之间的“喜欢”是可以传递的——如果A喜 欢B,B喜欢C,那么A也喜欢C ...
 - 题解 P2330 【[SCOI2005]繁忙的都市】
			
又是一道Kruskal题目. AC代码见下. 主要思路就是将所有的边储存起来,然后进行贪心地选择,期间需要判断两个端点是否有关联,这一过程通过并查集实现.Kruskal部分套模板就可以了. #incl ...
 - POJ——T 1470 Closest Common Ancestors
			
http://poj.org/problem?id=1470 Time Limit: 2000MS Memory Limit: 10000K Total Submissions: 20830 ...
 - ZooKeeper 特性
			
ZooKeeper 拥有一个层次的命名空间.(like distributed) 注意:ZooKeeper 中不许使用相对路径. 一 ZooKeeper 数据模型 ...
 - NYOJ_77 开灯问题
			
题目地址 分析: 用一个数组来保存每盏灯的操作的次数.推断奇偶就可以推断灯的状态. 最后的输出格式须要注意一下空格的位置,思路就是现输出一个.剩下来的输出在前面加一个空格. 空格用_表示: 1_3_5 ...
 - JAVA爬虫Nutch、WebCollector的正则约束
			
爬虫爬取时,须要约束爬取的范围. 基本全部的爬虫都是通过正則表達式来完毕这个约束. 最简单的,正则: http://www.xinhuanet.com/.* 代表"http://www.xi ...
 - Android View体系(十)自定义组合控件
			
相关文章 Android View体系(一)视图坐标系 Android View体系(二)实现View滑动的六种方法 Android View体系(三)属性动画 Android View体系(四)从源 ...
 - 23. Angular 中用 a 标签 href 路由时在浏览器中显示异常 "%2F" 路由失败问题1
			
这个是angular1.6默认给hash路由上添加了!(感叹号),导致出错,修改方法如下(添加配置,去掉默认前缀感叹号): angular.module('routingDemoApp',['ng ...
 - 8. java操作mongodb——查询数据
			
转自:https://www.cnblogs.com/adjk/p/6430074.html 通过find方法查询集合中的文档信息 ---------------------------------- ...