首页 > 其他分享 >P9545 [湖北省选模拟 2023] 环山危路 / road

P9545 [湖北省选模拟 2023] 环山危路 / road

时间:2023-09-19 21:57:20浏览次数:46  
标签:right limits P9545 2023 考虑 aligned sum road out

题意就是给定一个竞赛图,多次询问,每次询问有多个源点 \(s_1,s_2,\cdots s_k\),单个汇点 \(t\),一条边流量为 \(1\),求最大流。

考虑转成最小割,相当于将 \(V\) 划分成两个集合 \(S,T\),\(S\cup T=V\) 且 \(S\cap T=\varnothing\),\(s_i\in S,t\in T\),然后令 \(f(S,T)=\sum\limits_{u\in S}\sum\limits_{v\in T}[(u,v)\in E]\) 最小。

考虑竞赛图的性质,每两个点之间都有连边,所以:

\[\begin{aligned}f(S,T)+f(T,S)&=\sum\limits_{u\in S}\sum\limits_{v\in T}[(u,v)\in E]+[(v,u)\in E]\\&=|S|\cdot |T|\end{aligned} \]

然后再推 \(f(S,T)-f(T,S)\):

\[\begin{aligned}f(S,T)-f(T,S)&=\sum\limits_{u\in S}\sum\limits_{v\in T}[(u,v)\in E]-[(v,u)\in E]\\&=\sum\limits_{u\in S}\left(\sum\limits_{v\in V}[(u,v)\in E]-\sum\limits_{v\in S}[(u,v)\in E]-\sum\limits_{v\in V}[(v,u)\in E]+\sum\limits_{v\in S}[(v,u)\in E]\right)\\&=\sum\limits_{u\in S}\left(\sum\limits_{v\in V}[(u,v)\in E]-[(v,u)\in E]\right)\\&=\sum\limits_{u\in S}out_u-in_u\end{aligned} \]

其中 \(out_u\) 表示 \(u\) 的出度,\(in_u\) 表示 \(u\) 的入度。第二行推第三行是因为考虑一条边的贡献,那么 \(S\) 的导出子图的所有点出入度之差的和显然为 \(0\)。

于是能够得到:

\[f(S,T)=\frac{|S|\cdot |T|+\sum\limits_{u\in S}out_u-in_u}{2} \]

由于 \(T=V\setminus S\):

\[f(S,T)=\frac{|S|(n-|S|)+\sum\limits_{u\in S}out_u-in_u}{2} \]

考虑 \(|S|\) 相同时,只需要最小化 \(\sum\limits_{u\in S}out_u-in_u\),那么考虑 \(|S|\) 从小到大的过程,直接按照 \(out_u-in_u\) 从小到大排序然后一个个加入集合 \(S\) 即可。

注意到 \(s_i(1\le i\le k)\in S\) 且强制 \(t\notin S\)。

复杂度 \(O(n(n+m))\)。

标签:right,limits,P9545,2023,考虑,aligned,sum,road,out
From: https://www.cnblogs.com/Ender32k/p/17715910.html

相关文章

  • 2023.9.19——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午上课,下午做任务。我了解到的知识点:1.了解了关于模型训练的一些知识和注意事项;明日计划:1.上课;2.比赛;......
  • 每日总结20230919
    代码时间(包括上课)5h代码量(行):30行博客数量(篇):1篇相关事项:1、今天上午上的是软件设计模式和人机交互技术,软件设计模式讲的是单例模式和适配器模式,人机交互技术讲的是定位。2、今天上午人机交互技术留了三十分钟小组讨论明天软件案例开发分析的PPT讲解。3、晚上和下午的话去科技......
  • 20230918
    早上用JavaFX完成验证码登陆页面的作业,学会了使用scenebuilder创建窗口的fxml布局文件遇到了问题,发现是使用的simplecaptcha生成的验证码图片为BufferdImage类型转换成JavaFX使用的Image类型中出现的问题,最后解决了。踩了些坑之后自我感觉还行,但是没什么用。下午王老......
  • 20230919打卡
    今天的学习重点是链表合并和多项式创建。链表合并是算法与数据结构中的重要内容,它可以将两个有序链表合并成一个有序链表。通过学习链表合并的原理和实现方法,我掌握了如何有效地处理链表数据结构,并能够理解和运用链表相关的算法。另外,我还学习了多项式的创建。多项式是数学中的重......
  • 日常记录--day6--2023-9月19日--周二
    日程:今天只有上午有课,7点20起床,吃了个早饭去上课,早上有一节数据结构,复习了一下链表,学了栈和队列。中午小睡一个小时,下午起来学习了一会Java,晚上7-8点听了下代码随想路,8-9点继续力扣。学了什么:Java让人头疼,晚上练了道动态规划,有点不太会,复习了数据结构。PS:不想学习,想要成为插线......
  • 2023.9.18
    //高精度//注:大写字母代表位数大于(1e6),小写字母代表小于(1e6)的数//在存储较大数时,用数组来记录每一位的数字,数组下标为0,则记录大数的个位,依次往后推##A+Bc++#include<iostream>#include<vector>usingnamespacestd;vector<int>add(vector<int>&A,vector<int>&B)......
  • 2023.9.19 二年级四则运算在线答题
    packageTest2333;importjava.util.Random;importjava.util.Timer;importjava.util.TimerTask;importjava.util.Scanner;publicclassdaily1{//设置时长(秒)staticintcountDownTime=100;publicstaticvoidmain(String[]args){Scannersc=n......
  • [完结22章]2023版全新高质量商业级小程序全栈项目实战
    点击下载——[完结22章]2023版全新高质量商业级小程序全栈项目实战  提取码:ztnk[完结22章]2023版全新高质量商业级小程序全栈项目实战,又名:Vue3+Uni+Node+MySQL从零实现跨端小程序的全栈应用!在现代社会中,移动互联网的发展必将为人们的生活产生重要影响。微信小程序全栈开发是......
  • Road To Reality(Multiple valuedness, natural logarithms)
    RoadToReality(Multiplevaluedness,naturallogarithms)Addition-to-multiplication\(e^{a+b}=e^ae^b\)theinverseoftheexponentialfunction:\(z=\ln{w}\)if\(w=e^z\)Hence:\(\ln{ab}=\ln{a}+\ln{b}\)AspecialCartesianform(\(z=x+iy\)......
  • 2023/09/19
    今天主要学习了有关数据结构中两个有序线性表的有序合并。对两个有序线性表的主要方法就是比较两表中元素的大小。其原理是从表头开始两表中的数按表中的序列顺序(从小到大或者从大大小)进行比较,将较小(较大)的数接入新的表中,同时将填入的数的表和新表移向下一个位置。循环重复以......