码迷,mamicode.com
首页 > 其他好文 > 详细

[SPOJ839]最优符号

时间:2019-03-16 09:40:06      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:进制   type   选择   应该   暴力   ima   最小值   答案   ESS   

题目描述

技术图片

  • 有点懵……这和最小割有关系?而且这题暴力也不好写吧……总不能一个一个枚举权值吧。
  • 考虑如果点的权值只有1和0的情况。如果一个点到另一个点之间有一条路径,并且它们已经确定一个为1,一个为0,那么这条路径上的点你不管如何赋值,都至少会产生1的代价。那么我们想要达到最小值,应该是考虑如何选择,所有从权值为1的节点到权值为0的节点路径上的点的权值,让每条路径产生的代价尽可能小。
  • 一条路径为了尽量只产生1的代价,那么它一定是前一段的点权值为1,后一段点权为0。如果两条路径交叉,有这样几种情况:
  • 1、
    技术图片
    这种情况,两条边只会产生1的代价。
  • 2、
    技术图片
    这种情况会产生2的代价。
  • 注意,多条边的交叉情况也是基于这两种的。发现它具有网络流的性质吧?所以考虑它怎么和网络流联系在一起。把初始点权为1的看做S集合,点权为0的看做T集合。我们其实要做的就是处理完S到T的所有边,使代价最小。把代价当做割开一条路径的花费,所求问题即为割最少的边使得S到T不连通。
  • 建立源点s,连向S内所有点一条容量为inf的边。建立汇点t,T内所有点连向t一条容量为inf的边。原图中的边正常连,不过容量为1,。跑最小割即为答案。
  • 到此,我们解决了点权只有0和1的情况。那么点权<=1e9该怎么办呢?
  • 哎,二进制拆分啊,跑log次最小割不好了。妙哉妙哉~
  • 因为SPOJ没注册上,代码后续再补……(咕咕)

[SPOJ839]最优符号

标签:进制   type   选择   应该   暴力   ima   最小值   答案   ESS   

原文地址:https://www.cnblogs.com/kgxw0430/p/10540566.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!