bzoj 1006 弦图染色
2024-08-25 11:11:08
给定一个弦图,问最少染色数。
对于弦图的一个完美消去序列,从后往前染色,每次染可以染的最小编号的颜色,由完美消去序列的定义,序列任一后缀的点的导出子图中,由该后缀第一个元素及其邻接点导出的子图一定是完全图,所以,序列中某一元素染的颜色编号是该完全图的大小。所以最小染色数小于等于最大团的点数,而显然前者又大于等于后者,故弦图的最小染色数等于最大团的大小。
/**************************************************************
Problem: 1006
User: idy002
Language: C++
Result: Accepted
Time:1672 ms
Memory:11968 kb
****************************************************************/ #include <cstdio>
#include <vector>
#define maxn 10010
using namespace std; int n, m;
vector<int> g[maxn];
bool done[maxn];
int label[maxn], pos[maxn]; int msc() {
int rt = ;
for( int i=n; i>=; i-- ) {
int mu = ;
for( int u=; u<=n; u++ ) {
if( !done[u] ) {
if( !mu || label[u]>label[mu] )
mu = u;
}
}
done[mu] = true;
pos[mu] = i;
int cnt = ;
for( int t=; t<g[mu].size(); t++ ) {
int v = g[mu][t];
if( done[v] ) {
cnt++;
} else {
label[v]++;
}
}
rt = max( rt, cnt+ );
}
return rt;
}
int main() {
scanf( "%d%d", &n, &m );
for( int i=,u,v; i<=m; i++ ) {
scanf( "%d%d", &u, &v );
g[u].push_back(v);
g[v].push_back(u);
}
printf( "%d\n", msc() );
}
最新文章
- Flask安装过程中“配置虚拟环境”步骤报错,找不到activate.bat
- GIT本地配置和PUSH
- video标签无法使用的问题
- WAMP环境启动失败处理办法
- SqlServer性能优化 手工性能收集动态管理视图(三)
- canvas基本画图
- win8下安装ubuntu双系统
- 京东手机webapp商城
- spring boot + velocity中文乱码解决方式
- BZOJ 3669: [Noi2014]魔法森林( LCT )
- MyBatis_Generator插件的安装以及简单使用
- Spring初始化ApplicationContext线程托管实际运用架构构思
- rem绝对自适应方案
- oracle 常用sql字符函数介绍
- LODOP获取打印机状态码和状态码含义测试
- DashBoard创建各种表(二)
- Netty实战十四之案例研究(一)
- [NOI2004]郁闷的出纳员(到底是谁郁闷啊?)
- linux查看cpu个数,线程数及cpu型号
- 200. Number of Islands(DFS)
热门文章
- layui利用jQuery设置下拉列表的值
- ProxySQL 排错 Max connect timeout reached while reaching hostgroup 10 after 10000ms
- openjudge-NOI 2.6-1944 吃糖果
- Dev Express 安装
- Dagger:快速的依赖注入for 安卓&;Java
- Delphi 绘图对象
- 《自己动手写docker》之namespace部门实验
- 【58沈剑架构系列】细聊分布式ID生成方法
- POJ1284 Primitive Roots [欧拉函数,原根]
- Java常用工具类之IO流工具类