图论:弦图最小点染色

弦图的定义:当图中任意长度大于3的环都至少有一个弦时, 一个无向图称为弦图

不存在四角、五角等关系就说明这个图是一个弦图

题目问的是,任何一对相互认识的人不可以组一队,问最多可以组多少对

所有的人构成的关系图是一个弦图(长度超过 3 的环中必有一条弦),求出它的完美性消除序列,根据完美消除序列逆序贪心的染色,最终所用的色数就是本题的答案

好难啊

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstdlib>
 4 #include<algorithm>
 5 #include<cstring>
 6 #define inf 0x7fffffff
 7 #define ll long long
 8 using namespace std;
 9 inline ll read()
10 {
11     ll x=0,f=1;char ch=getchar();
12     while(ch>'9'||ch<'0'){if(ch=='-')f=-1;ch=getchar();}
13     while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
14     return x*f;
15 }
16 int n,m,cnt,ans;
17 int head[10005],d[10005],q[10005],col[10005],hash[10005];
18 bool vis[10005];
19 struct data{int to,next;}e[2000005];
20 void ins(int u,int v)
21 {e[++cnt].to=v;e[cnt].next=head[u];head[u]=cnt;}
22 int main()
23 {
24     n=read();m=read();
25     for(int i=1;i<=m;i++)
26     {
27         int u=read(),v=read();
28         ins(u,v);ins(v,u);
29     }
30     for(int i=n;i;i--)
31     {
32         int t=0;
33         for(int j=1;j<=n;j++)
34         {
35             if(!vis[j]&&d[j]>=d[t])t=j;
36         }
37         vis[t]=1;q[i]=t;
38         for(int j=head[t];j;j=e[j].next)
39             d[e[j].to]++;
40     }
41     for(int i=n;i>0;i--)
42     {
43         int t=q[i];  
44         for(int j=head[t];j;j=e[j].next)hash[col[e[j].to]]=i;
45         int j;
46         for(j=1;;j++)if(hash[j]!=i)break;
47         col[t]=j;
48         if(j>ans)ans=j;
49     }
50     printf("%d",ans);
51     return 0;
52 }

 再补上一些区间图的定义和应用

给定一些区间,定义一个相交图为每个顶点表示一个区间,两个点有边当且仅当两个区间的交集非空。

一个图为区间图当它是若干个区间的相交图

区间图一定是弦图

应用有

1.给定n个区间,要求选择最多的区间使得区间不互相重叠。区间图的最大独立集。2.有n个积木,高度均为1,第i个积木的宽度范围为[Li, Ri],选择一个积木的下落顺序使得最后积木总高度尽可能小。把一层积木看成一个颜色,转化为区间图的色数问题。

好像解法依赖于一个极其复杂的数据结构?

转载于:https://www.cnblogs.com/aininot260/p/9624064.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/396936.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

报错型sql注入原理分析

0x00&#xff1a;前言关于sql注入&#xff0c;经久不衰&#xff0c;现在的网站一般对sql注入的防护也相对加强了&#xff0c;2016年的***测试报告中&#xff0c;出现最多的是xss&#xff08;跨站脚本***&#xff09;和明文传输等&#xff0c;但是对sql注入的利用方式&#xff0…

matlab矩阵 0,matlab zeros初始化为0矩阵

zeros为创建一个值为零的数组&#xff1b;如matrix1zeros(4,5);%4*5的矩阵&#xff0c;矩阵中每个元素都为0matrix2zeros(4,5,3);%4*5*3的数组&#xff0c;数组中每个元素都为0下面举一个将图像存到数组的例子对RGB图片1.jpg&#xff0c;2.jpg&#xff1b;大小为700*500*3创建4…

HDU 2199

人生中第一道搜索题 精度精度、&#xff01;&#xff01;&#xff01; 1 #include<iostream>2 #include<algorithm>3 #include<cmath>4 #include<cstdio>5 using namespace std;6 double f(double x)7 {8 return 8*pow(x,4.0)7*pow(x,3.0)2*pow(x,…

python文件编译_编译Python文件

编译Python文件 一、编译Python文件 为了提高加载模块的速度&#xff0c;强调强调强调&#xff1a;提高的是加载速度而绝非运行速度。python解释器会在__pycache__目录中下缓存每个模块编译后的版本&#xff0c;格式为&#xff1a;module.version.pyc。通常会包含python的版本号…

SDN-博客收集

1、云网融合的多云网络转载于:https://www.cnblogs.com/snowwhite/p/9624404.html

php cookie 字串,php入门(字符串,cookie,session)

php入门(字符串,cookie,session)&#xff0c;有需要的朋友可以参考下。字符串获取字符串的长度: strlen()函数获取中文字长echo mb_strlen($str,”UTF8”);英文字符串截取$stri love you;复制代码//截取love这几个字母echo substr($str, 2, 4);//为什么开始位置是2呢&#xff0…

批处理命令Start

2019独角兽企业重金招聘Python工程师标准>>> 运行hello.exe&#xff08;最小化&#xff09; start /MIN hello.exe 用记事本打开readme.txt&#xff08;最大化&#xff09; start /MAX notepad readme.txt 打开网页 start http://www.baidu.com/ 调用另外一个脚本&…

vim乱码的解决

解决vim文件乱码&#xff0c;打开文件乱码&#xff0c;菜单&#xff0c;提示信息乱码&#xff1a; 有四个跟字符编码方式有关的选项&#xff0c;encoding、fileencoding、fileencodings、termencoding 在linux中修改.vimrc&#xff08;在win中是_vimrc&#xff09;A&#xff0c…

arcgis python实例_arcgis二次开发_arcgis二次开发python_arcgis二次开发实例

[1.rar] - QQ连连看的源码.单消秒杀挂机等功能喜欢的朋友请拿去研究 [qqCHAR.rar] - qq 验证码识别程序 可以叫准确的识别出qq登陆前的验证码 [1.rar] - 本书以Visualc作为开发语言&#xff0c;结合大量实例&#xff0c;详细介绍了利用Arcobjects组件进行GIS二次开发的方法和过…

Linux命令-自动挂载文件/etc/fstab功能详解

一、/etc/fstab文件的作用磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中&#xff0c;否则下次开机启动时仍然需要重新挂载。系统开机时会主动读取/etc/fstab这个文件中的内容&#xff0c;根据文件里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文…

微分方程在matlab中的实现,Matlab微分方程参数优化的Forcal实现

FCC文件缺省设置&#xff1a;(XNote请修改为X轴单位) (YNote请修改为Y轴单位)(AutoY1) (XMin0) (XMax1) (YMin0) (YMax1)(BorderPixels60) (MultiplyX1) (MultiplyY1) (Grid0) (DivideXY10) (XYNumWidth3) (DataMax2)(ForMax50) (LoadDll)[CODE]// 通用设置&#xff1a;// (XNo…

常用命令

1.在控制台下关闭Java进程&#xff1a;taskkill /f /im java.exe转载于:https://www.cnblogs.com/super90/p/5133906.html

一、在windows环境下修改pip镜像源的方法(以python3为例)

在windows环境下修改pip镜像源的方法(以python3为例) 1.在windows文件管理器中,输入 %APPDATA% 2.会定位到一个新的目录下&#xff0c;在该目录下新建pip文件夹&#xff0c;然后到pip文件夹里面去新建个pip.ini文件 3.在新建的pip.ini文件中输入以下内容&#xff0c;搞定 [glob…

得到选择框句柄 怎么操作_电脑版微信怎么多开?最简单的三种电脑版微信多开教程...

​在现实中的我们在网络上却又很多张脸&#xff0c;多开微信很多人都是需要的&#xff0c;这里就介绍3个方法给大家多开。方法1&#xff1a;BAT文件鼠标右键单击微信图标选择 属性在属性选项夹内复制 “目标”例如我的是("D:Program Files (x86)TencentWeChatWeChat.exe&q…

php起始符大全,PHP 符号大全

注解符号:// 单行注解/* */ 多行注解引号的使用’ ’ 单引号,没有任何意义,不经任何处理直接拿过来;" "双引号,php动态处理然后输出,一般用于变量.变量形态:一种是True 即 真的;另一种是False 即假的常见变量形态:string 字串(数字\汉字\等等)int…

关于tomcat内路径跳转的一些思考

初学jspservlet时经常碰上的几个错误&#xff1a;404、路径正确但页面没有任何内容、样式和图片丢失。这几个错误曾经让我在debug时头大&#xff0c;现在总结一下&#xff0c;其实它们都跟路径有关&#xff0c;正是因为没有处理好路径跳转的问题&#xff0c;才引发了这一连串的…

Filter责任链模式

Filter责任链的创建 org.apache.catalina.core.ApplicationFilterFactory#createFilterChain, 此方法是被org.apache.catalina.core.StandardWrapperValve#invoke调用的, 对每个request都会创建FilterChain public static ApplicationFilterChain createFilterChain(ServletR…

python中的类装饰器应用场景_这是我见过最全面的Python装饰器教程了!

装饰器(Decorators)是 Python 的一个重要部分。简单地说:他们是修改其他函数的功能的函数。他们有助于让我们的代码更简短,也更Pythonic(Python范儿)。在程序开发中经常使用到的功能&#xff0c;合理使用装饰器&#xff0c;能让我们的程序如虎添翼。1. 函数名应用 函数名是什么…

对于个人(注册表)与团队(团队表)(两张表没有关联)的展示与可空判断

对于个人&#xff08;注册表&#xff09;与团队(团队表)&#xff08;两张表没有关联&#xff09;的展示与可空判断 1&#xff0c;在Model中只有GroupId没有名称&#xff08;GroupName&#xff09;,所以自己定义一个&#xff1a; /// <summary>/// RegistratorMessage 界面…

macos sierra 引导镜像_真想不到,在win10上可以制作苹果macOS启动U盘

不管你使用的是macOS还是Windows10&#xff0c;电脑出现启动问题是很正常的&#xff0c;原因有很多种&#xff0c;包括(但不限于)文件损坏、硬件故障和错误更新等。如果意外发生在苹果电脑上&#xff0c;可以使用带有安装文件的macOS启动U盘来修复它。这正是在电脑正常工作时应…