【IOI 2012】【JZOJ 3738】理想城市

Description

平面上有一个区块,由N个点组成,保证四连通,并且区块内部没有洞
这里写图片描述
大概就是上面四种都不合法
求区块内两两点间最短路之和,路径只能走区块上的点
N<=10^5

Analysis

吼题,思路很巧妙

这道IOI的题不需要任何高级算法,小学生看了题解都会做

咋一看什么思路都没有,于是想一定要好好利用区块内部没有洞的条件
如果我们已经知道所有点到(x,y)的最短路,考虑点转移
这里写图片描述
如图,从绿色点转移到紫色点,那么所有红点的距离要+1,蓝点的距离要-1
于是答案变成求出任意一个横向切分上半部分(红)的点数和下半部分(蓝)的点数
(注意下半部分的点可能出现在分割线的上方)
我们可以对图横向剖分,即将同一行且连续的点压成一个点,由于没有洞,所以最后会形成一棵树
那么所求即为树的子树大小
进一步地,对于连接两行的点的一条边,需要被经过 numred*numblue 次,所以直接统计就好
最后再竖着做一遍,同理
剖分可以O(n)连边,整题可以O(n)解决
好像还有一种猥琐的DP方法,实现过于恶心

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值