首页 > 其他分享 >图的着色小计

图的着色小计

时间:2024-03-10 22:37:10浏览次数:28  
标签:问题 le 小孩 染色 复杂度 小计 着色 染同

问题引入

有 \(n\) 个小孩子,它们有 \(m\) 对讨厌关系,每对关系约定为小孩 \(p\) 与 小孩 \(q\) 不能再一起玩。
现在你要给这些小孩分组,求最少要分成几组才满足每组小孩都不会发生矛盾。

问题抽象

我们抽象这个问题。
关系可以想到二分图,但是每对关系会互相约束,显然不行。
那么可以想成是一个图,有矛盾就连一条边。

这样,我们真正的问题就引出水面:
给定一张图,给每个点染色,满足有边链接的两个节点不能染同一种颜色,求染色成功的最小颜色数。

问题解决

通常的,这是一个我们刚开始学算法的经典问题,我们直接使用 dfs 暴力染色,期望的时间复杂度是 \(O(\text{过不了})\) 它能顺利解决 \(n\le 8\) 的情况

这个时间复杂度十分辣鸡。

我们考虑 状压dp 。

令 \(G(S)\) 表示集合 \(S\) 染同一种颜色是否合法,这个可以在 \(O(2^n\times n^2)\) 内求出。要是你真的强迫,使用 \(O(2^nn)\) 也不是不行。

我们考虑一位位染色,每次都染一种色。

令目前集合为 \(T\) 那么有显然转移:\(f_T = \min([G(S-T)]\space f_S)(S\subset T)\)

然后就做完了。时间复杂度 \(O(3^n)\) 能解决 \(n\le 16\) 的情况。

标签:问题,le,小孩,染色,复杂度,小计,着色,染同
From: https://www.cnblogs.com/g1ove/p/18064998

相关文章

  • 着色2
    着色模型-投影变换:物体变为标准立方体中视口变换:3D物体变为2D平面光栅化:绘制物体在2D平面上着色:对物体应用材质--applyamaterialtoanobject材质在光照作用下表现出来的颜色Bling-Phone模型光照会出现的情况:漫反射+高光+环境光照ShadingPoint考虑的光照最简模......
  • 着色
    着色模型-投影变换:物体变为标准立方体中视口变换:3D物体变为2D平面光栅化:绘制物体在2D平面上着色:对物体应用材质--applyamaterialtoanobject材质在光照作用下表现出来的颜色Bling-Phone模型光照会出现的情况:漫反射+高光+环境光照ShadingPoint考虑的光照最简模......
  • 踩坑小计-Android Flutter应用设置沉浸式状态栏
    之前写过一篇关于设置Flutter页面沉浸式状态栏的文章。https://www.cnblogs.com/mrhan9941/p/16482604.html主要是基于Flutterboost的原生Android项目的,那时候是在原生Android项目嵌入了FlutterModule。项目重构后已经改为纯Flutter项目,确发现一个小问题,沿用之前的设置沉浸式状......
  • 内置着色器
    内置着色器(普通渲染管线)FX:光照和玻璃特效。GUI和UI:用于显示用户界面图形。移动端(Mobile):适用于移动设备的简化高性能着色器。大自然(Nature):用于树木和地形。粒子(Particles):粒子系统特效。天空盒(Skybox):用于渲染所有几何体后面的背景环境精灵(Sprites):与2D精灵系统结......
  • 增加颜色和着色
    一.平滑着色  我们已经知道,在OpenGL中,我们只能画点,直线和三角形,并且所有物体都是以他们为基础构建的。既然受限于这三个基本图元,那么我们如何用许多不同的颜色和着色表达更复杂的场景呢?我们能使用的一个方法就是使用上百万个小三角形,每个三角形的颜色都不同,这样就可以看到一副......
  • 神奇的 SQL ,同时实现小计与合计,阁下该如何应对
    开心一刻今天,小区有个很漂亮的姑娘出嫁我对儿子说:你要好好学习,认真写作业,以后才能娶到这么漂亮的老婆儿子好像听明白了,思考了一会,默默的收起了作业本然后如释重负的跟我说到:爸,我以后还是不娶老婆了 环境准备后文要讲的重点是标准 SQL ,与具体的数据......
  • 算法学习笔记(44): 二维问题小计
    首先需要理解什么是二维问题。$n$维空间体系:将元素变成$n$维空间中的点,将范围变成$n$维空间中的正交范围。二维问题就是每一个元素都可以看作一个平面上的坐标\((x,y)\)。其中一维可以是下标,时间,值,dfn,甚至是一个函数\((x,f(x))\)。经典的二维问题实际上就是矩形加,矩......
  • 编译着色器并在屏幕上绘图
    一.前言  本篇文章会继续上一篇文章开始的工作,在这篇文章中,我们首先会加载并编译前面定义的着色器,然后把他们链接在一起放在OpenGL的一个程序里,接下来就可以使用这个着色器程序在屏幕上绘制空气曲棍球桌子结构了。 二.加载着色器1.我们已经为着色器写了代码,下一步则要把......
  • 后缀数组小计
    0前言被迫上班了属于是前置知识倍增基数排序基数排序这个很好理解举个例子:对\(n\)对二元组\((x,y)\)排序优先比较关键字\(x\)相同再比较关键字\(y\)第一步:以\(y\)为基准从小到大把所有二元组排序得到\(y\)递增的序列第二部:以\(x\)为基准从小到大......
  • Idea 创建SpringBoot小计
    创建spring工程之后maven依赖包拉不下来去官网下载maven并配置maven环境变量  下载地址:http://maven.apache.org/download.cgi解压后,修改mavensetting配置文件,增加国内镜像地址添加阿里云国内镜像  idea配置本地maven配置如下图  之后应该就......