1.有一张无向图,现在要给每个点染上黑色或白色,最后每个点的染色代价是它与离这个点最近的不同色节点的距离。求最小代价。所有边权$\geq 0$且互不相同。

分三种情况:

两点都染了色:两点都跟其它点算过最小距离了,不用管。

一点染了色:相当于扩展连通块,染了色的点向没染色的点扩展染色,颜色相同。

两点都没染色:两点直接相连(且边长是最短距离)。

2.题目大意同上,求得到最小代价的方案数。

0的边两边的点有多少个子树,方案数就累加上2的多少次方。

3.一张无向图,给每条边染两种颜色之一,使每个度大于等于2的点都连接两种颜色的边。问能否做到。Yes或No。

首先光秃秃的偶环(奇数条边)肯定无解(发芽就有解了),光秃秃的奇环(偶数条边)肯定有解(不知道这个结论的可以跳过这题了)。

环?想到了树。

可以先把这张图取出$n-1$条边,让整张图构成一棵树,

我们知道,树中只有三种边:树边(图中黑边)、回边(返祖边)(图中红边)、跨边(有向图特有)。

对于树上任意的度$\ge 2$ 的点,它的两边染上不同的颜色即可,如果再有一条返祖边连向它,这条新边染什么颜色都可以,必定能满足另一头的要求。

但对于度为 $1$ 的点呢?根和叶子结点都是度为1的点,这时候我们就要跑这个环。

只有这个环本身(即不算发芽)有偶数个点且发芽的情况需要我们考虑是否有解。

其实这就是偶环上发芽的情况。如图

那么发芽点在原环上的两条相邻边就可以染成同色,然后把另一种颜色染到芽上。

但如果发的芽下面也有边连向了入读为1的边呢?

如果新连出来的环还是偶环,好像依然不可行。

那什么情况下可行?如下。

只要偶环与奇环相套,至少就可以从发芽点把另一种颜色沿着芽流出去了。

结合这么一个知识:偶环套偶环=偶环

可得:只有整张图只要存在纯偶环(就是不与奇环相套的偶环)就无解,否则有解。

所以这是个结论题,以上都是推导,并非题解。

题解的话就再扯点没用的(找纯偶环的方法):去掉奇度点(它们是整张图的芽,处于被动染色状态,环上芽才是主动),把图的剩余部分做Tarjan求无向图强连通分量(MD准确地说是双连通分量)。在每一个分量中任选一个起点,看是否存在经过偶数条边回到起点的方案。如果存在,说明存在奇环,这个强连通分量满足条件。如果所有的强连通分量都满足条件,说明图中不存在纯偶环,有解。否则存在纯偶环,无解。

4.有向图,边权只有0和1,求单源最短路。(线性算法)

我们都知道,广搜时总是取出队列中的第一个数。求最短路情况下,为了让更新尽量有意义,我们当然希望先从队列中取出(目前更新的)到起点距离尽量小的,这样可以尽量多地更新它周围点的最短路。

然后这题边权只有0和1,我们甚至不用写单调队列,如果按照上述贪心取法,我们发现广搜队列中 前面一段的距离值 与 后面一段的距离值 的差值不超过1。

为什么呢?

因为我们要取出到起点距离尽量小的,所以总是会取距离值相对较小的。并且更新时边权只会是0或1。

结合数学归纳法可知,

一开始队列中只有起点,距离为0,队列中距离值的差为0。

然后更新了周围的点,有些点的距离值更新为0,有些点的距离值更新为1。

然后我们一直更新 距离值为0的点 的周围的点,直到队列中所有点的距离值都为1。

此时已经不存在未被更新过的到起点距离为0的点了(广搜常识)。

此时队列中所有点的距离值是1。

然后把1当成之前的0,接下来更新出的距离值2当成之前的1,就归纳为一样的步骤了。

由此证明这样做的广搜队列中 前面一段的距离值 与 后面一段的距离值 的差值不超过1

然后边权还只有0和1,队列操作比较简单,把通过权值为0更新的点接到队头,通过权值为1更新的点放到队尾即可。队头的点的距离值就是相对较小的。

拓展:有向图,边权只有0~20,求单源最短路。

把队列分割成21个桶,每个桶依次存$x,x+1,...,x+20$这21个距离值。广搜时不停取第一个桶中的点,把被该点更新距离的点 放到对应距离值的桶里。如果第一个桶中没有点,就把所有桶存放的距离值上调至使第一个桶中有点。

易证点肯定有桶放。

5.每个点有一个(开采矿物的)费用,边权依然只有0和1,求分别开采每个点的矿物时的最小费用。

6.执行k个操作,每个操作连接两个点,问每个操作后图中有多少条割边。(LCT会超时)

边双连通(环)的情况下给图缩点,这个图会变成一个森林。森林之间的每条边都是一条割边。因此用两个并查集维护,一个维护每个连通块的点,另一个维护每个边双连通块的点。

【2018.10.2】Note of CXM的更多相关文章

  1. 【2018.10.20】CXM笔记(思维)

    1. 给你个环状字符串,问从哪个地方拆开能使它的字典序最小. 先预处理任意子串的哈希值. 然后枚举拆点,将它与当前最优的拆点比较谁更优(就是从哪拆的字典序更小),具体方法是二分+哈希找出两串最长的相同 ...

  2. 【2018.10.27】CXM笔记

    一个数大约有 $O(\sqrt(n)/log^2(n))$ 个约数. 1. 一个棋盘,每个格子最开始都是白的.可以按一个格子,它马跳(日字跳)能到达的 $8$ 个格子反色(当前格不反色).问有多少种方 ...

  3. 【2018.10.18】CXM笔记(动态规划)

    1.给你一棵树,让你修任意多条点不相交的铁路(每条铁路都是一根链),定义一个点的代价为它到根节点的路径中不在铁路上的边数,求一种设计方案代价最大的点最小. 铁路点不相交与 每个点连出去的铁路条数 $\ ...

  4. 【2018.10.4】CXM笔记(图论)

    .1.给你一个无向图,问这张图的最小割是否唯一.输出yes或no. 跑一边最大流,那么最小割的那些正向边一定满流(也就是过不了了).所以在残余网络上,从S到T和从T到S各广搜找一组最小割的边(即正向边 ...

  5. 【2018.10.18】noip模拟赛Day2 地球危机(2018年第九届蓝桥杯C/C++A组省赛 三体攻击)

    题目描述 三体人将对地球发起攻击.为了抵御攻击,地球人派出了 $A × B × C$ 艘战舰,在太 空中排成一个 $A$ 层 $B$ 行 $C$ 列的立方体.其中,第 $i$ 层第 $j$ 行第 $k ...

  6. 【2018.10.20】noip模拟赛Day3 二阶和

    今年BJ省选某题的弱化版…… 这看起来就没那么难了,有几种方法维护,这里提两种. 第一种(傻逼的我写的) 维护 一维&二维前缀和. 对于一个长度为$m$的序列$b_1,b_2,...,b_m$ ...

  7. 【2018.10.20】noip模拟赛Day3 飞行时间

    今天模拟赛题目 纯考输入的傻逼题,用$scanf$用到思想僵化的我最终成功被$if$大法爆$0$了(这题只有一组$100$分数据). 输入后面那个$(+1/2)$很难$if$判断,所以我们要判两个字符 ...

  8. 【2018.10.15】WZJ笔记(数论)

    1. 证明:对于任意质数$p\gt 3$,$p^2-1$能被$24$整除. 证:平方差公式,$p^2-1 = (p-1)(p+1)$. 再把$24$分解质因数$2^3*3$. 三个相邻的自然数中至少有 ...

  9. 【2018.10.15】noip模拟赛Day1

    题面 wzj的题解 T1 随便搜 #include<bits/stdc++.h> #define ll long long using namespace std; inline int ...

随机推荐

  1. iOS 随机数(Fixed)

    ios 有如下三种随机数方法: 1.    srand((unsigned)time(0));  //不加这句每次产生的随机数不变         int i = rand() % 5; 2.     ...

  2. 搭建一个入门springboot工程

    springboot工程搭建(入门案例) 第一步:创建maven工程 第二步:设置项目信息 第三步:默认项目名称,不用改动(第二步已填写)  第三步:在pom.xml中导入依赖 SpringBoot要 ...

  3. 【转】Python 访问 HDFS

    1.前言 hdfs , Hadoop Distributed File System.Hadoop的分布式文件系统,安全行和扩展性没得说. 访问HDFS的方式有以下几种: 命令行方式:FS Shell ...

  4. pytorch中的view

    https://ptorch.com/news/59.html view()相当于reshape(),其中参数若为-1表示当前的size根据其余size推断

  5. 字符串数组 输入3个字符串,要求按由小到大的字母顺序输出; 输入n个学生的姓名和学号到字符串数组中,在输入一个姓名,如果班级有该生则返回其信息,否则返回本班无此人

    输入3个字符串,要求按由小到大的字母顺序输出 如 输入franch england china,输出结果是china england franch 三个数排序输出,比较三个数的大小怎么做? a=18 ...

  6. ios之UIWebView(2)

    UIWebView是iOS sdk中一个最常用的控件.是内置的浏览器控件,我们可以用它来浏览网页.打开文档等等.这篇文章我将使用这个控件,做一个简易的浏览器.如下图: 我们创建一个Window-bas ...

  7. 使用iptables缓解DDOS及CC攻击

    使用iptables缓解DDOS及CC攻击 LINUX  追马  7个月前 (02-09)  465浏览  0评论 缓解DDOS攻击 防止SYN攻击,轻量级预防 iptables -N syn-flo ...

  8. PAT 乙级 1041

    题目 题目地址:PAT 乙级 1041 题解 这道题学到的东西恰好和1037中学到的东西相互补充,总结如下: 在之前的博文中我曾提到过——“结构体在函数内部对数据的操作不能赋给主函数中的实参,函数内部 ...

  9. php登录加密加盐

    1         背景 涉及身份验证的系统都需要存储用户的认证信息,常用的用户认证方式主要为用户名和密码的方式,为了安全起见,用户输入的密码需要保存为密文形式,可采用已公开的不可逆的hash加密算法 ...

  10. 身为前端开发工程师,你需要了解的搜索引擎优化SEO.

    网站url网站创建具有良好描述性.规范.简单的url,有利于用户更方便的记忆和判断网页的内容,也有利于搜索引擎更有效的抓取您的网站.网站设计之初,就应该有合理的url规划. 处理方式: 1.在系统中只 ...