1006: [HNOI2008]神奇的国度

Time Limit: 20 Sec  Memory Limit: 162 MB
[Submit][Status][Discuss]

Description

  K国是一个热衷三角形的国度,连人的交往也只喜欢三角原则.他们认为三角关系:即AB相互认识,BC相互认识,CA相互认识,是简洁高效的.为了巩固三角关系,K国禁止四边关系,五边关系等等的存在.所谓N边关系,是指N个人 A1A2...An之间仅存在N对认识关系:(A1A2)(A2A3)...(AnA1),而没有其它认识关系.比如四边关系指ABCD四个人 AB,BC,CD,DA相互认识,而AC,BD不认识.全民比赛时,为了防止做弊,规定任意一对相互认识的人不得在一队,国王相知道,最少可以分多少支队。

Input

  第一行两个整数N,M。1<=N<=10000,1<=M<=1000000.表示有N个人,M对认识关系. 接下来M行每行输入一对朋友

Output

  输出一个整数,最少可以分多少队

Sample Input

4 5
1 2
1 4
2 4
2 3
3 4

Sample Output

3

HINT

  一种方案(1,3)(2)(4)

弦图的点染色问题

构造出完美消除序列后

从后往前染当前能染的最小颜色

#include<cstdio>
#include<iostream>
#define N 10001
#define M 1000001
using namespace std;
bool vis[N];
int st[N],top;
int color[N],mark[N],sa[N],d[N];
int n,m;
int tot,front[N<<1],to[M*3],nxt[M*3];
void read(int &x)
{x=0; char c=getchar();while(!isdigit(c)) c=getchar();while(isdigit(c)) { x=x*10+c-'0'; c=getchar(); }
}
void add(int u,int v)
{to[++tot]=v; nxt[tot]=front[u]; front[u]=tot;
}
#define f(x) x+n+1
void mcs()
{for(int i=1;i<=n;i++) add(f(0),i);int pos,mx=0;for(int i=n;i;--i){pos=0;for(int j=front[f(mx)] ; j && !pos ; j=nxt[j])if(!vis[to[j]]) {pos=to[j];vis[pos]=true;sa[i]=pos;}else front[f(mx)]=nxt[j];if(!pos) mx--,i++;else{for(int j=front[pos];j;j=nxt[j])if(!vis[to[j]]){d[to[j]]++;add(f(d[to[j]]),to[j]);mx=max(mx,d[to[j]]);}}}
}
int main()
{read(n); read(m);int u,v;for(int i=1;i<=m;++i) {read(u); read(v);add(u,v);add(v,u);}mcs();int ans=0;for(int i=n;i;--i){for(int j=front[sa[i]];j;j=nxt[j])mark[color[to[j]]]=i;int j;for(j=1;j<=n&&mark[j]==i;j++);color[sa[i]]=j;ans=max(ans,j);     }printf("%d",ans);
}

转载于:https://www.cnblogs.com/TheRoadToTheGold/p/7464788.html

[HNOI2008]神奇的国度相关推荐

  1. 弦图与完美消除序列(bzoj 1006: [HNOI2008]神奇的国度)

    诱导子图:子图中任意一条边的两个端点一定也都在这个子图中 最大团:团中任意两点之间一定都有边,而包含顶点最多的团就是最大团 最小团覆盖:用最少的团覆盖图中所有的点 最大独立集:独立集中任意两点之间一定 ...

  2. BZOJ 1006: [HNOI2008]神奇的国度( MCS )

    弦图最小染色...先用MCS求出完美消除序列然后再暴力染色... ------------------------------------------------------------------- ...

  3. 【BZOJ 1006】 [HNOI2008]神奇的国度

    1006: [HNOI2008]神奇的国度 Time Limit: 20 Sec   Memory Limit: 162 MB Submit: 2000   Solved: 897 [ Submit] ...

  4. P3196 [HNOI2008]神奇的国度(弦图的最小染色问题)

    整理的算法模板合集: ACM模板 题目传送门 K国是一个热衷三角形的国度,连人的交往也只喜欢三角原则.他们认为三角关系:即AB相互认识,BC相互认识,CA相互认识,是简洁高效的.为了巩固三角关系,K国 ...

  5. bzoj 1006: [HNOI2008]神奇的国度

    这是个标准的弦图,但如果不知道弦图就惨了=_= 趁着这个机会了解了一下弦图,主要就是完美消除序列,求出了这个就可以根据序列进行贪心染色. 貌似这个序列很神,但是具体应用不了解-- 这道题为什么可以这么 ...

  6. 1006: [HNOI2008]神奇的国度

    图上的最小的染色方案: 学习了陈丹绮的论文: MCS算法 #include<cstdio> #define maxn 10005 #define maxm 2000005 using na ...

  7. BZOJ1006神奇的国度

    1006: [HNOI2008]神奇的国度 Time Limit: 20 Sec Memory Limit: 162 MB Submit: 2789 Solved: 1255 Description ...

  8. 神奇的国度(HYSBZ-1006)

    Problem Description K国是一个热衷三角形的国度,连人的交往也只喜欢三角原则.他们认为三角关系:即AB相互认识,BC相互认识,CA 相互认识,是简洁高效的.为了巩固三角关系,K国禁止 ...

  9. [HNOI 2008] 神奇的国度 kingdom

    K国是一个热衷三角形的国度,连人的交往也只喜欢三角原则.他们认为三角关系:即AB相互认识,BC相互认识,CA相互认识,是简洁高效的.为了巩固三角关系,K国禁止四边关系,五边关系等等的存在.所谓N边关系 ...

最新文章

  1. CocoaPods导入的库其头文件导入的方法
  2. Linux下mysql备份
  3. HelloGitHub
  4. pandas 入门(2)
  5. linux服务器上如何显示工作路径
  6. HTFS.Software.v7.3-ISO 1DVD(传热模拟,最新完全解密版)
  7. Javascript、Dom、JQuery
  8. ajax提交不能获取数据,django无法收到ajax的请求数据
  9. 幼儿园编程机器人课程介绍
  10. zedgraph显示最小刻度_ZedGraph显示多条实时曲线
  11. 应用安全测试技术DAST、SAST、IAST对比分析-持续更新
  12. linux局邮软件,Unix/Linux平台上常用的邮件系统软件
  13. c语言网络字节序整数,c语言中网络字节序和主机字节序的转换
  14. 走,上高架,看看Momenta“飞轮式L4”的“微操”技巧
  15. 使用poi做excel导出时解决以文本格式存储的数字问题
  16. 索尼展示基于MicroLED技术的16K显示屏:约780吋
  17. 工控液晶屏开机白屏怎么回事,开机白屏解决方法?
  18. POJ 2676 Sudoku (数独求解器 DFS)
  19. 全志F1C100s主线linux入坑记录 (1)linux系统移植
  20. python基础入门神图

热门文章

  1. 数据库定义语言常见关键字
  2. Shell——运算符和条件判断
  3. 部署环境_Jenkins环境搭建和部署项目的过程
  4. c++ 用类统计不及格人数_统计小课堂13
  5. Struts2解析FreeMarker模板中变量的顺序
  6. struts2类型转换+校验
  7. display:table和display:table-cell的妙用
  8. 上传图片即时显示图片
  9. 网络相关知识点:nginx相关概念
  10. variable `xxx' has initializer but incomplete type