CF360E

Link&Submission.

首先显然可以选择的边的权值一定会取端点值。事实上,第一个人经过的边选最小,第一个人不经过的边选最大,这样一定不劣。进一步,如果 \(s_1\) 到点 \(u\) 的距离小于等于 \(s_2\),则 \((u,v)\) 这条边应该取最小值。所以可以初始全部当作最大值,不断选择一条边修改,直到不能再修改。这时检查距离,比较即可。

CF280D

Link&Submission.

好像跟图论没什么关系,不过题解区一片模拟费用流……

考虑线段树维护,每个区间上记录选择 \(j\) 个段,且开头/结尾选/不选的最大值。具体来说,\(mx_{j,0/1/2/3}\) 分别表示选择 \(j\) 个段,开头结尾无限制/开头选,结尾无限制/开头无限制,结尾选/开头结尾都选的情况下,子段和的最大值。区间合并是容易的。时间复杂度 \(O(nk^2\log n)\),常数并不大。注意上面这个状态没有限制开头不选或者结尾不选,如果限制了转移需要写满 \(16\) 种,不限制的情况下可以减少到 \(8\) 种转移。

CF1062F

Link&Submission.

有向无环图没什么处理手段,考虑拓扑序。在拓扑排序的过程中,同时处于队列中的点一定互相不可达。所以做一遍拓扑排序,如果一个点出队的时候队列中还有另外两个点,则该点不够重要。如果一个点出队的时候队列中没有其他点了,那么这个点可以到达的所有点就是剩下还没有入队的点。剩下的一种情况是一个点 \(u\) 出队的时候队列中恰好还剩了一个点 \(v\),那么如果后面还有 \(u\) 不能到的点,就一定会有一个这样的点是 \(v\) 的后继,那么它的入度只能为 \(1\)。也就是说检查 \(v\) 的所有出边,如果有入度为 \(1\) 的点则 \(u\) 也直接不合法,否则也算出 \(u\) 能到达的点数。再在反图上做一遍,就可以得出每个可能合法的点能到达或能被到达的点数,即可统计答案。

CF235D

Link&Submission.

显然把期望拆成概率。只用对所有有序点对 \((u,v)\),求出删掉 \(u\) 的时候 \(v\) 和 \(u\) 仍然联通的概率,最后求和即可。如果 \(u,v\) 间的路径不经过环,点数为 \(len\),则概率就是 \(\frac{1}{len}\)(相当于 \(u\) 在这 \(len\) 个的排列中位于开头);如果 \(u,v\) 间的路径经过环,设有 \(len\) 个点必须经过,环的两侧分别有 \(x,y\) 个点,则容斥可得概率是 \(\frac{1}{len+x}+\frac{1}{len+y}-\frac{1}{len+x+y}\)。枚举点对计算即可。

CF1240F

Link&Submission.

问题相当于给边染色。差不超过 \(2\) 的限制看起来很宽松,所以猜测一定可以全部染色。因为太宽松不好处理,所以考虑拆点,把边 \((u,v)\) 换成 \((u,v+n)\),要求新图中每个点邻边的颜色出现次数的极差不超过 \(1\),最后合并 \(u\) 和 \(u+n\) 即可。得到的新图显然是一张二分图。

再考虑拆点,把度为 \(d=qk+r\) 的点拆成 \(q+1\) 个点,前 \(q\) 个点度为 \(k\),最后一个点度为 \(r\),原来的边随便分配到这些点上(注意这样拆完之后的点数是 \(O(m)\) 的)。要求每个点连出的边颜色互不相同即可。那么考虑一条边 \((u,v)\),随便选一个 \(u\) 还没用过的颜色 \(c_u\),一个 \(v\) 还没用过的颜色 \(c_v\)。如果 \(v\) 也没用过 \(c_u\) 就可以直接染色为 \(c_u\)。否则找到 \((v,w)\) 颜色为 \(c_u\),将其改为 \(c_v\)(边 \((u,v)\) 仍然染色 \(c_u\))。如果又有 \((w,x)\) 颜色为 \(c_v\),则将其改为 \(c_u\)。如此递归下去,最后一定成功,不然就表明选择的边成环了。如果这个环包含 \(u\) 就表明 \(u\) 已经连了颜色为 \(c_u\) 的边,否则就表明某个点连了两条颜色相同的边,总之是荒谬的。

CF1268D

Link&Submission.

用到强连通竞赛图的几个性质:(记点数为 \(n\ge 3\))

  • 强连通竞赛图一定有哈密顿环。

    反证法。假设没有,取出点数最多的环 \(p_1,p_2,\cdots,p_k,p_{k+1}=p_1(k\lt n)\)。考虑 \(u\notin \{p_1,\cdots,p_k\}\),若有 \(i\) 使得边 \((p_i,u),(u,p_{i+1})\in E\) ,则与最大性矛盾。所以对每个这样的 \(u\),要么 \(\forall i,(u,p_i)\in E\),要么 \(\forall i,(p_i,u)\in E\)。记 \(S=\{u\notin \{p_1,\cdots,p_k\}|(u,p_i)\in E,\forall i\}\),\(T=\{u\notin \{p_1,\cdots,p_k\}|(p_i,u)\in E,\forall i\}\),因为图是强连通的,且 \(k\lt n\),所以 \(S,T\neq \empty\)。同时一定存在 \(u\in T,v\in S\) 使 \((u,v)\in E\),否则 \(T\) 中的点无法到达 \(S\) 中的点。这时就发现 \(p_1,u,v,p_2,p_3,\cdots,p_k\) 是更大的环,矛盾。

  • 如果 \(n\ge 4\),则可以删去一个点,使得剩下的图仍然是一个强连通竞赛图。

    由上一个结论可以直接知道一个竞赛图强连通等价于有哈密顿环。设原图中的哈密顿环是 \(u_1,u_2,\cdots,u_n\),假如有 \(k\) 使得 \((u_k,u_{k+2})\in E\),则删掉 \(u_{k+1}\) 即可;否则,任何三个连续的点强连通,容易发现删掉任何点都仍然是强连通的。

  • 如果一个竞赛图中所有点的出度从大到小排序为 \(d_1,d_2,\cdots d_n\),则图强连通等价于不存在 \(k\),使得 \(d_1+d_2+\cdots+d_k=C_{k}^2\)。

    对于一个竞赛图,按照强连通分量缩点之后,显然会得到一个全序图。考虑这个全序图中最后一个分量,它满足命题中的等式。只有当这最后一个分量是整个图的时候,图才是强连通的。既得证。

回到原题。利用第三个结论,可以在 \(O(n^2\log n)\) 的时间判断不进行操作和操作一次的所有情况。

注意到,如果图缩点之后有至少三个分量,那么翻转一个中间的点的邻边就可以使图强连通。所以判断完 \(0,1\) 后剩下的情况一定只有两个强连通分量。而如果这两个分量中有一个大小至少为 \(4\),利用上面的第二个结论翻转一个点,借助第一个结论结论容易证明得到了一个强连通分量,所以这种情况也讨论过了。剩下的情况就是样例 \(2,3\)。

CF1148G

Link&Submission.

先来尝试证明题目中的“always exists”。考虑补图,那么目标转化为:找一个大小为 \(k\) 的点集,要么每个点所在的连通块大小均为 \(1\),要么均大于 \(1\)。那么,我们找一个最大的独立集 \(S\),如果大小大于等于 \(k\) 就成立了,否则,对于每个不在 \(S\) 中的点,一定和某个 \(S\) 中的点连边了。让每个 \(S\) 外的点恰好连一条边,也就是在每个 \(S\) 中的点上挂了若干个点,设挂的点数从大到小为 \(c_1,c_2,\cdots,c_t,t\lt k\)。注意到 \(2k\le n\),由抽屉原理可知 \(c_1\ge 3\)。我们只需要找到 \(a_1,a_2,\cdots,a_t\) 满足 \(\sum_{i=1}^ta_i=k,a_i\le c_i+1,a_i\neq 1\)。这是非常容易的:\(2,3,\cdots,c_1-1,(c_1-1)+2,\cdots,c_1-1+c_2,(c_1-1)+c_2+2,\cdots,c_2+\cdots+c_t\) 这些数中一定包含了 \(k\) 和 \(k-1\) 之一(注意 \(k\ge 3\)),取 \(a_1=c_1-1\) 或 \(c_1\) 即可。

或许不容易找到最大的独立集,但是在本题的条件下,不难找到一个极大的独立集。具体来说,我们依次尝试把每个数加入 \(S\)。这就要判断 \(S\) 中是否有与某个数互质的数。而利用莫比乌斯反演,容易计算出与某个数互质的数的个数。而对于极大的独立集,上面的证明当然也是成立的。

剩下的问题是,要判断不在 \(S\) 中的数和 \(S\) 中哪个数互质。注意到我们可以判断一个数是否与某一些数之一互质,所以单个询问可以二分,多个询问就可以整体二分。整体二分的实现是容易的。

时间复杂度 \(O(n\log n\times2^8)\),后面这个 \(2^8\) 是因为 \(10^7\) 内的数最多有 \(8\) 个质因数,而用莫比乌斯反演计算时只需要考虑无平方因子数。实际跑不满。

Solution Set - 图上问题的更多相关文章

  1. 2019-ACM-ICPC-南京区网络赛-D. Robots-DAG图上概率动态规划

    2019-ACM-ICPC-南京区网络赛-D. Robots-DAG图上概率动态规划 [Problem Description] ​ 有向无环图中,有个机器人从\(1\)号节点出发,每天等概率的走到下 ...

  2. yii2组件之多图上传插件FileInput的详细使用

    作者:白狼 出处:http://www.manks.top/yii2_multiply_images.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连 ...

  3. [python]沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上

    将沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上 原理:python读取前一次处理完的计算5日后涨跌幅输出的csv文件 文件名前加"[paint]" 安照通达信的画图文件和板 ...

  4. matlab 将多个盒图放在一张图上

    1.boxplot 将多个盒图放在一张图上 x1 = normrnd(5,1,100,1)';x2 = normrnd(6,1,200,1)';X = [x1 x2];G = [zeros(size( ...

  5. ajax 异步插入图片到数据库(多图上传)

    额 大概就这么个样子...截个图 点浏览  选择几张图片 选择完了 确定一下 然后插入数据库 同时在页面中显示插入的图片,代码 也没啥.看下 index.php <html><hea ...

  6. iOS 使用AFN 进行单图和多图上传

    图片上传时必要将图片进行压缩,不然会上传失败 1.单张图上传 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManag ...

  7. PHP之:多图上传

    撰写日期:2016-6-30 15:17:35 Thursday 参考 http://a3147972.blog.51cto.com/2366547/1381136 (08-05ThinkPHP+sw ...

  8. arcgis android 图上记录gps轨迹

    原文  arcgis android 图上记录gps轨迹 public class MainActivity extends Activity { MapView mMapView; Location ...

  9. 微信jssdk,实现多图上传的一点心得

    一.首先在common.js里封装一个函数,在需要调用jsSDK的页面引用此方法即可实现微信的信息配置function signatureJSSDK() { var url = window.loca ...

  10. JS案例之4——Ajax多图上传

    近期项目中有好几次用到多图上传,第一次在项目中真正用到Ajax技术,稍微整理了下,贴个案例出来. 我们传统的做法是当用户提交一个表单时,就向web服务器端发送一个请求.服务器接受并处理传来的表单信息, ...

随机推荐

  1. #高精度,卡特兰数#洛谷 2532 [AHOI2012]树屋阶梯

    题目 分析 设\(dp[n]\)表示大小为\(n\)的树屋阶梯方案数,如何不算重也不算漏 考虑在左下角填充一个尽量大的矩形,一共有\(n\)种方法, 然后剩下的两头就可以用前面的结果表示 也就是\(d ...

  2. #trie#A 区间异或

    题目 给定一个长度为\(n\)的序列,询问有多少个\((l,r),1\leq l\leq r\leq n\)满足 \[xor_{l\leq j\leq r}a_j\geq k \] 分析 显然跑一次前 ...

  3. Qt搜索本机网卡对应网段的在线设备

    需求:销售给我的需求是找出哪些IP是没有被占用的,所以我要先找出已经被占用的IP 项目是Qt开发的,所以在网上搜索了下,搜索到的实现方式都是:QHostInfo::lookupHost,但是这种方式, ...

  4. TensorFlow2数据类型

    1.1 数值类型 数值类型的张量是 TensorFlow 的主要数据载体,分为: 1.标量(Scalar) 单个的实数,如 1.2, 3.4 等,维度数(Dimension,也叫秩)为 0, shap ...

  5. CentOS6.4中yum命令安装php5.2.17[转载未亲测]

    最近给公司部署服务器的时候发现他们提供的服务器是centos6.4系统的,装好系统和相关服务httpd,mysql,php,一跑代码,发现php5.3中的zend加密不能用,安装Zend Guard ...

  6. sql 语句系列(删库跑路系列)[八百章之第七章]

    前言 最开心的章节,没有之一. 删除违反参照完整性的记录 EMP 是员工表,DEPT 是部门表 DEPTNO是部门编号 delete from EMP where not exists ( selec ...

  7. Scratch3自定义积木块之新增积木块

    在Scratch3.0的二次开发中,新功能的研发和扩展离不开积木块的添加,这篇主要讲解Scratch3.0中新增积木块部分 Scratch3.0中对于新增积木块有两种方式: 1. 初始化积木块方式   ...

  8. 这些Git事故灾难, 你经历过几个?

    前言 关于Git, 相信大家最常用的就是pull和push. 但随着协作规模的提升, 遇到的问题也会越来越多. 本篇文章并不科普一些命令的详细用法, 更多的是分享在工作中遇到的Git场景问题以及踩过的 ...

  9. Django框架——模版层之标签、自定义过滤器 标签及inclusion_tag(了解)、模版的继承与导入、模型层之前期准备、ORM常用关键字

    模版层之标签 {% if 条件1(可以自己写也可以用传递过来的数据) %} <p>今天又是周三了</p> {% elif 条件2(可以自己写也可以用传递过来的数据) %} &l ...

  10. 顺通鞋服进销存OA管理系统

    鞋服进销存OA管理系统通过十几年的积淀与创新,顺通与众多鞋服企业一起共创,形成了涵盖协同办公.移动办公.知识管理.数据运营.多维门户等领域,以鞋服新品研发管理.生产排班管理.门店一体化管理.市场费用管 ...