ctsc2009 移民站选址

 

分析:非常非常好的一道题!

首先需要对问题进行转化:

  1. 行列无关,对于行单独处理,对于列单独处理
  2. 必然存在一个最优方案使得每一个新站与旧站重合.

转化1很显然,对于转化2,是一类非常经典的“中位数问题”,即在一条线段上,有若干个特殊点,要选择一个点的位置,使得它到这些点距离*对应权值的和最小. 结论就是这个点一定在给定的这些点的位置上.

那么问题可以变成,m个位置,每个有n种选择,代价即为其与旧站的传输代价和。不同位置间的选择也会带来代价.

首先假设我们不知道这道题要用网络流来做. dp? Emm,这怎么设计状态啊,要状压吗? 明显压不下. 贪心,肯定不行. 这道题涉及到“匹配”,自然就是网络流咯.

费用流可以吗?显然是不行的,旧站与新站之间的费用很好处理,但是新站与新站之间的费用不好处理.

那就只有是最大流咯. 用流量表示费用?这怎么表示啊......

那么锁定方法--最小割!

每个位置有多种选择,注意到这句话,可以往两个方面去想:

  1. 把选择看作点.
  2. 将每个位置拆成选择个数个点.

本题如果要用最小割显然不能用第一种方法.因为选择与选择之间不好处理,那么就用第二种方法.

上面所画的就是建图方式.具体说来,就是S连向每个点拆出来的第一个点,容量为inf,每个点拆出来的最后一个点连向T,容量为inf.

对于第i个点拆出的第k个点连向第i个点拆出的第k+1个点,容量为第i个新站建在第k个旧站的代价.

对于第i个点拆出的第k个点连向第j个点拆出的第k个点,容量为b_ij.

下面来分析一下建图:

割掉第i个点拆出来的点实际上就是确定了第i个新站的位置. 如上图所示,如果同时割掉两条红色的边,为了使得S,T不连通,必然会割掉两条绿色的边. 如果i的选择是pi,j的选择是pj,一共会割掉 |pi - pj|条绿边,正好就是新站i,j之间的代价.

至此这道题就做完了.

一点感想:最小割为了使得ST不连通,一次能够割掉很多条边.如果网络流的题要求很多的贡献(两两之间的).尝试用最小割?

转载于:https://www.cnblogs.com/zbtrs/p/8612945.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/252150.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jenkins 安装与使用--实例

參考了博客Jenkins master在windows上安装 Jenkins的主要功能是监视反复工作的运行,比如软件project的构建详细地: *软件的持续构建和測试 本质上提供了一个易于使用的持续集成系统。使得开发者更easy地将改变集成到project中。使得用户更easy获得一个…

后端项目搭建技术栈

Koa2:koa-bodyparser koa-router koa-session koa-corsTypeScript数据库:Mysql (库:Sequelize)表单验证库:Joi

C# 实体类几种深拷贝的方法——解决关于对象赋值,A=B,A改变,B也改变问题

几种常见的深拷贝方式 1、利用反射实现 public static T DeepCopyByReflection<T>(T obj) {   if (obj is string || obj.GetType().IsValueType)   return obj; object retval Activator.CreateInstance(obj.GetType());   FieldInfo[] fields obj.GetType().…

Hadoop学习之路(九)HDFS深入理解

HDFS的优点和缺点 HDFS的优点 1、可构建在廉价机器上 通过多副本提高可靠性&#xff0c;提供了容错和恢复机制 服务器节点的宕机是常态 必须理性对象 2、高容错性 数据自动保存多个副本&#xff0c;副本丢失后&#xff0c;自动恢复 HDFS的核心设计思想&#xff1a; 分散均匀…

关于Unity中的声音管理模块(专题七)

声音的要素 1: 音频文件AudioClip2: 音源AudioSource;3: 耳朵AudioListener;//全局只能有一个4: 2D/3D音频;//2D只是简单地播放声音&#xff0c;3D可以根据距离衰减音量 怎样听到声音&#xff1a; 创建一个节点&#xff0c;挂载AudioSource组件&#xff0c;AudioSource组件关联…

重启唯一的窗体实例,以及调用系统重启函数失败解决办法

1、修改Program.cs内的程序启动函数 static class Program{public static System.Threading.Mutex Instance;/// <summary>/// 应用程序的主入口点。/// </summary>[STAThread]static void Main(){Application.EnableVisualStyles();Application.SetCompatibleTe…

ThreadLocal可能引起的内存泄露

threadlocal里面使用了一个存在弱引用的map,当释放掉threadlocal的强引用以后,map里面的value却没有被回收.而这块value永远不会被访问到了. 所以存在着内存泄露. 最好的做法是将调用threadlocal的remove方法. 在threadlocal的生命周期中,都存在这些引用. 看下图: 实线代表强引…

codevs 1576 最长严格上升子序列

题目链接&#xff1a;http://codevs.cn/problem/1576/题目描述 Description给一个数组a1, a2 ... an&#xff0c;找到最长的上升降子序列ab1<ab2< .. <abk&#xff0c;其中b1<b2<..bk。 输出长度即可。 输入描述 Input Description第一行&#xff0c;一个整数N。…

nginx服务器开启缓存、反向代理

一、反向代理配置 1、反向代理服务器配置如下 反向代理就是需要这一行proxy_pass来完成。当我们要访问后端web服务器的时候&#xff0c;我们只需要访问代理服务器就可以了&#xff0c;此时代理服务器就充当后端web服务器的角色。proxy_pass依赖的模块是&#xff1a; 至于后两行…

Halcon:区域特征:select_shape(Regions : SelectedRegions : Features, Operation, Min, Max : )

Region特征一览&#xff1a; 特征 英 译 备注 area Area of the object 对象的面积 row Row index of the center 中心点的行坐标 column Column index of the center 中心点的列坐标 width Width of the region 区域的宽度 height Height of the…

Web应用主动侦测工具Skipfish

Web应用主动侦测工具SkipfishSkipfish是Kali Linux附带的一个主动Web应用侦测工具。该工具会首先尽可能获取所有网站路径&#xff0c;进行访问&#xff0c;然后根据返回的内容&#xff0c;检测是否存在漏洞。该工具采用字典爆破和网页爬行两种方式获取网站。一旦获取网页内容&a…

7步让你get首个数据科学实习

由于数据科学的庞大和复杂&#xff0c;如果你没有相关的实习经历的话&#xff0c;成为数据科学家的道路将会更加艰巨和困难。即使是经验丰富的人&#xff0c;实习也是转型进入数据科学领域的一种有效方式。 那么&#xff0c;寻找数据科学实习有哪些技巧&#xff1f;本文总结了数…

Halcon:Image、region、xld常用的处理

一、读取文件夹中的所有图片 list_files (C:/Users/fuping.liu/Desktop/槟榔有无头/有头, [files,follow_links], ImageFiles) tuple_regexp_select (ImageFiles, [\(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$,ignore_case], ImageFiles)for Index :…

赛码网算法: 上台阶 ( python3实现 、c实现)

上台阶 题目描述 有一楼梯共m级&#xff0c;刚开始时你在第一级&#xff0c;若每次只能跨上一级或二级&#xff0c;要走上第m级&#xff0c;共有多少走法&#xff1f;注&#xff1a;规定从一级到一级有0种走法。 输入…

Halcon: 畸变矫正与标定(1)

1、 Halcon相机标定和图像矫正 对于相机采集的图片&#xff0c;会由于相机本身和透镜的影响产生形变&#xff0c;通常需要对相机进行标定&#xff0c;获取相机的内参或内外参&#xff0c;然后矫正其畸变。相机畸变主要分为径向畸变和切向畸变&#xff0c;其中径向畸变是由透…

conda install 出错

在下载包时出现下面的错误&#xff1a; userdeMBP:pytorch user$ conda install -n deeplearning matplotlib Solving environment: failedCondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.anaconda.com/pkgs/main/osx-64/repodata.json.bz2> Elapsed…

算法入门经典 第三章

scanf 遇到tab或空格或换行符停下来1.例题2-1 7744问题 从数本身看 从个位数的数字看#include <iostream>#include<math.h>using namespace std; int main(){ for(int a1;a<9;a) { for(int b1;b<9;b) { int n1100*a11*b;//floor x 等于1的区间为[1,2),florr(…

Halcon :畸变矫正与标定(2)

相机标定1.相机标定是什么2.怎么使用halcon进行相机内外参标定&#xff1f; &#xff08;1&#xff09;搭建硬件1.**相机连好电脑&#xff0c;用相机厂家软件打开相机&#xff0c;检查一下相机是否正常。**2.**接下来使用halcon连接相机**&#xff08;2&#xff09;开始标定1.*…

jQuery2

一、层次选择器 1、后代选择器$("div p"):div中所有的p标签元素 2、自带选择器$("div>p")&#xff1a;div中的子代是p的第一层元素 3、兄弟选择器$("divp")和div是兄弟的p标签 4、相邻兄弟选择器$("div~p")与div相邻的p标签 二、jQ…

HTTP协议详解(转载)

http://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.html 转载于:https://www.cnblogs.com/youmei11/p/8608007.html