记录编号 141285 评测结果 AAAAAAAAAA
题目名称 [HNOI 2008]神奇的国度 最终得分 100
用户昵称 GravatarAsm.Def 是否通过 通过
代码语言 C++ 运行时间 0.864 s
提交时间 2014-11-30 16:03:42 内存使用 0.51 MiB
显示代码纯文本
/*====================Asm.Def========================*/
#include <iostream>
#include <cctype>
#include <cstdio>
#include <vector>
using namespace std;
inline void getd(int &x){
	char c = getchar();
	bool minus = 0;
	while(!isdigit(c) && c != '-')c = getchar();
	if(c == '-')minus = 1, c = getchar();
	x = c - '0';
	while(isdigit(c = getchar()))x = x * 10 + c - '0';
	if(minus)x = -x;
}
/*======================================================*/
const int maxn = 10002;
vector<int> adj[maxn];
int N, color[maxn] = {0}, ans = 0, adjcnt[maxn] = {0};
inline void init(){
	int a, b, M;
	getd(N), getd(M);
	while(M--){
		getd(a), getd(b);
		adj[a].push_back(b);
		adj[b].push_back(a);
	}
}
inline void work(){
	int i, j, lim, tmp = 1, Max = 0;
	bool ok_col[maxn];
	lim = (int)adj[1].size();
	color[1] = 1;
	for(i = 0;i < lim;++i)
		if(!color[adj[1][i]]) ++adjcnt[adj[1][i]];
	for(i = 1;i < N;++i){
		Max = 0;
		for(j = 1;j <= N;++j){
			ok_col[j] = 1;
			if(!color[j] && adjcnt[j] > Max)tmp = j, Max = adjcnt[j];
		}
		lim = (int)adj[tmp].size();
		for(j = 0;j < lim;++j)
			ok_col[color[adj[tmp][j]]] = 0;
		for(j = 1;j <= N;++j) if(ok_col[j])break;
		color[tmp] = j;
		if(j > ans)ans = j;
		lim = (int)adj[tmp].size();
		for(j = 0;j < lim;++j)
			if(!color[adj[tmp][j]]) ++adjcnt[adj[tmp][j]];
	}
	printf("%d\n", ans);
}
int main(){
	freopen("bzoj_1006.in", "r", stdin);
	freopen("bzoj_1006.out", "w", stdout);
	init();
	work();
	return 0;
}