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. Oracle数据库对比MySQL

    基本 Oracle默认端口:1521 默认用户:system MySQL默认端口:3306 默认用户:root 连接MySQL: mysql -u root -p -- 输入密码 -- 查询所有数据库 ...

  2. verilog之预编译

    verilog之预编译 1.基本作用 预编译,就是在verilog进入编译器前的准备工作.一般是完成一些文件的调用,一些编译器的设置,一些参数的定义.一般使用include,define,timesc ...

  3. BlockQNN:NASNet同期,商汤提出block-wise版的MetaQNN | CVPR 2018

    作为NASNet的同期论文,BlockQNN同样地将目光从整体网络转换到了block-wise,整体思路大概是MetaQNN的block版,增加了一些细节地小修改.配合Early Stop Strat ...

  4. KingbaseES使用sys_backup.sh脚本init初始化配置文件常见错误处理

    KingbaseES使用sys_backup.sh脚本init初始化配置文件常见错误处理: 一.sys_backup.sh脚本按照如下顺序寻找初始化配置文件: [kingbase@postgres ~ ...

  5. Spring框架之控制反转IoC(Inversion of Control)的理解

    简单理解: 控制反转就是将代码的调用权(控制权)从调用方转移给被调用方(服务提供方). 解释一下: 如果我们需要创建某个类,就需要程序员去修改代码,然后才可以得到想要的类.反转的意思就是不需要程序员去 ...

  6. #状压dp#JZOJ 3853 帮助Bsny

    题目 一共有\(n\)本书,混乱值是连续相同高度书本的段数. 可以取出\(k\)本书随意放回,问最小混乱值,高度\([25\sim 32]\) 分析 设\(f[i][j][k][mask]\)表示前\ ...

  7. npm/cnpm 设置镜像地址

    npm 查看当前镜像源: npm config get registry # https://registry.npmjs.org/ 修改当前镜像源: npm config set registry ...

  8. 在nginx中使用proxy protocol协议

    目录 简介 proxy protocol在nginx中应用 在nginx中配置使用proxy protocol 在nginx中启用proxy protocol 使用Real‑IP modules 请求 ...

  9. Apache Maven ToolChains的使用

    目录 简介 Toolchains的介绍 Toolchains的例子 Toolchains支持 总结 简介 Maven是java中非常有用和常用的构建工具,基本上现在大型的java项目都是Maven和g ...

  10. reactive stream协议详解

    目录 背景 什么是reactive stream 深入了解java版本的reactive stream Publisher Subscriber Subscription Processor JDK中 ...