ctsc2009 移民站选址

分析:非常非常好的一道题!
首先需要对问题进行转化:
- 行列无关,对于行单独处理,对于列单独处理
- 必然存在一个最优方案使得每一个新站与旧站重合.
转化1很显然,对于转化2,是一类非常经典的“中位数问题”,即在一条线段上,有若干个特殊点,要选择一个点的位置,使得它到这些点距离*对应权值的和最小. 结论就是这个点一定在给定的这些点的位置上.
那么问题可以变成,m个位置,每个有n种选择,代价即为其与旧站的传输代价和。不同位置间的选择也会带来代价.
首先假设我们不知道这道题要用网络流来做. dp? Emm,这怎么设计状态啊,要状压吗? 明显压不下. 贪心,肯定不行. 这道题涉及到“匹配”,自然就是网络流咯.
费用流可以吗?显然是不行的,旧站与新站之间的费用很好处理,但是新站与新站之间的费用不好处理.
那就只有是最大流咯. 用流量表示费用?这怎么表示啊......
那么锁定方法--最小割!
每个位置有多种选择,注意到这句话,可以往两个方面去想:
- 把选择看作点.
- 将每个位置拆成选择个数个点.
本题如果要用最小割显然不能用第一种方法.因为选择与选择之间不好处理,那么就用第二种方法.
上面所画的就是建图方式.具体说来,就是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不连通,一次能够割掉很多条边.如果网络流的题要求很多的贡献(两两之间的).尝试用最小割?
ctsc2009 移民站选址的更多相关文章
- 【转】城市CORS系统建设
随着GPS技术的飞速进步和应用普及,它在城市测量中的作用已越来越重要.当前,利用多基站网络RTK技术建立的连续运行卫星定位服务综合系统(Continuous Operational Reference ...
- 【自编教材】16万8千字的HTML+CSS基础 适合从0到1-可收藏
[图片链接有点小问题,这几天更新,敬请期待!] 目 录 第一章HTML基础 1.1 HTML简介和发展史 1.1.1 什么是HTML 1.1.2 HTML的发展历程 1.1.3 web标准 1.2 开 ...
- zz《百度地图商业选址》
作者 | 阚长城 编辑 | 张慧芳 题图 | 站酷海阔 人类几千年的文明催生了城市的发展,计算机与复杂科学带给我们新的资源——大数据.罗马非一日建成,人力和时间成本极大,但试想一下,如果有了大数据,罗 ...
- Python小白的数学建模课-07 选址问题
选址问题是要选择设施位置使目标达到最优,是数模竞赛中的常见题型. 小白不一定要掌握所有的选址问题,但要能判断是哪一类问题,用哪个模型. 进一步学习 PuLP工具包中处理复杂问题的字典格式快捷建模方法. ...
- 用Taurus.MVC 做个企业站(下)
前言: 上一篇完成了首页,这一篇就把剩下的几个功能给作了吧. 包括文章列表.文章详情和产品展示. 1:文章列表: 原来的ArticleList.aspx 1:现在的articlelist.html 除 ...
- 用Taurus.MVC 做个企业站(上)
前言: 之前是打算写一篇文章叫:Taurus.MVC 从入门到精通,一篇完事篇! 后来转指一念,还是把教程集在这个企业站项目上吧!!! 企业站风格: 之前发过一个帮师妹写的企业站:最近花了几个夜晚帮师 ...
- 一步步开发自己的博客 .NET版(5、Lucenne.Net 和 必应站内搜索)
前言 这次开发的博客主要功能或特点: 第一:可以兼容各终端,特别是手机端. 第二:到时会用到大量html5,炫啊. 第三:导入博客园的精华文章,并做分类.(不要封我) 第四:做 ...
- 站在风口,你或许就是那年薪20w+的程序猿
最近面试了一些人,也在群上跟一些群友聊起,发现现在的互联网真是热,一些工作才两三年的期望的薪资都是十几K的起,这真是让我们这些早几年就成为程序猿的情何以堪!正所谓是站在风口上,猪也能飞起来!我在这里就 ...
- C站投稿189网盘视频源(UP主篇)
C站投稿189网盘视频源(UP主篇) 现在C站(吐槽弹幕网)的视频来源基本靠的都是189网盘,比如番剧区的每个视频基本来源于此,不像AB两站,拥有自己的资源服务器,为啥呢?没钱啊.都是外来的视频.本站 ...
随机推荐
- 用Python爬下今日头条所有美女,美滋滋!
我们的学习爬虫的动力是什么? 有人可能会说:如果我学好了,我可以找一个高薪的工作. 有人可能会说:我学习编程希望能够为社会做贡献(手动滑稽) 有人可能会说:为了妹子! ..... 其实我们会发现妹 ...
- CsvHelper文档-3写
CsvHelper文档-3写 不用做任何设置,默认的情况下,csvhelper就可以很好的工作了.如果你的类的属性名称和csv的header名称匹配,那么可以按照下面的例子写入: var record ...
- hdu - 6282,2018CCPC湖南全国邀请赛G题,字符串,规律
HDU – 6282 http://acm.hdu.edu.cn/showproblem.php?pid=6282 by Hzu_Tested 题意:给出两个字符串S和T,只由a,b,c三种字符组成( ...
- JPA error org.hibernate.AnnotationException: No identifier specified for entity
错误:org.hibernate.AnnotationException: No identifier specified for entity 原因:JPA所使用的Entity需要标注@Id,在引用 ...
- python基础-02-while格式化逻辑运算
python其他知识目录 1.循环打印“我是小马过河” while True: print('我是小马过河') #4.用while从一打印到10 #5.请通过循环,1 2 3 4 5 6 8 9 ...
- 禁用 Python GC,Instagram 性能提升10%
通过关闭 Python 垃圾收集(GC)机制,该机制通过收集和释放未使用的数据来回收内存,Instagram 的运行效率提高了 10 %.是的,你没听错!通过禁用 GC,我们可以减少内存占用并提高 C ...
- gulp4.0 存在的错误信息 The following tasks did not complete: default,Did you forget to signal async completion?
当gulp为如下代码的时候: // 以下代码会执行在node环境下 const gulp = require( "gulp" ); // 创建一个gulp的任务 gulp.task ...
- WEB前端开发流程总结
作者声明:本博客中所写的文章,都是博主自学过程的笔记,参考了很多的学习资料,学习资料和笔记会注明出处,所有的内容都以交流学习为主.有不正确的地方,欢迎批评指正 WEB前端开发项目流程总结 1.新建项目 ...
- VIM字符编码基础知识
1 字符编码基础知识 字符编码是计算机技术中最基本和最重要的知识之一.如果缺乏相关知识,请自行恶补之.这里仅做最简要的说明. 1.1 字符编码概述 所谓的字符编码,就是对人类发明的每一个文字进行数字 ...
- 对首师大研究生院的UI分析
我们分析的是首都师范大学研究生院的UI界面 网站链接http://grad.cnu.edu.cn/index.htm 学校设计和石家庄铁道大学的界面类似,都是有一个大的置顶的名字,将学校或者学院的名字 ...